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)
Другие вопросы по тегам