MySQL ADD_DATE проблема с часовым поясом
Я храню события с меткой времени Unix в моей базе данных, когда я хочу получить их как дату и время в MySQL с FROM_UNIXTIME
или же DATE_ADD
функции различных значений, сгенерированных прямо в соответствии с часовым поясом моего текущего местоположения (UTC +3:30). Я должен использовать DATE_ADD
функция, потому что FROM_UNIXTIME
не работает для отрицательных временных отметок. как я могу решить эту проблему?! Спасибо всем заранее.
Вот мой запрос:
SELECT topic, `start`, FROM_UNIXTIME(`start`), DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND) FROM uzr_event
И вот он Ответ: Результаты
1 ответ
Причина, по которой ваш результат смещен, заключается в том, что строка, которую вы передаете DATE_ADD
интерпретируется по часовому поясу сеанса, а не по UTC.
Вы можете сделать это до запроса:
SET time_zone = 'UTC';
Или вы можете оставить часовой пояс сессии вне уравнения и просто изменить это:
DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND)
К этому:
DATE_ADD(FROM_UNIXTIME(0), INTERVAL `start` SECOND)