У меня есть таблица MySQL с полем end_date
типа DATETIME
, в котором хранится дата UTC. Я хочу получить разницу в минутах между NOW()
и значением end_date
. Я alredy нашел много вопросов и ответов здесь, в stackoverflow, чтобы сделать это, некоторые используют UNIX_TIMESTAMP
, который из того, что я понимаю, принимает входное значение и преобразует его в UTC (поэтому я не могу использовать его, потому что моя дата alredy UTC) и другие который предлагает использовать TIME_TO_SEC
и делить на 60
. Это то, что я взял:Получите разницу дат в минутах с MySQL
INTERVAL (TIME_TO_SEC(UTC_TIMESTAMP()) - TIME_TO_SEC(end_date))/60 MINUTE
Он отлично работает, пока текущий день не отличается от дня end_date
«s. В этот момент результат вычитания отрицательный, и когда я использую этот код внутри функции DATE_ADD
, он выводит неверный результат. Как я могу это исправить?
Я не могу найти TO_SECONDS в документах MySQL. Кстати, я не могу использовать СЕЙЧАС, потому что, как я сказал в моем вопросе, сохраненная дата находится в UTC, а NOW возвращает текущую дату в часовой пояс сервера – Stefano
здесь. Http://dev.mysql.com/doc/refman /5.5/en/date-and-time-functions.html#function_to-seconds, я редактирую свой ответ, чтобы установить UTC_TIMESTAMP() – miltos