Функции даты / времени в MySQL - PullRequest
0 голосов
/ 26 августа 2018

Я работаю над приложением, которое использует столбцы create_at и updated_at в таблицах MySQL.Часовой пояс сервера / системы установлен на EDT.

После INSERT я использую функцию MySQL CURRENT_TIMESTAMP для значения create_at.MySQL автоматически обновляет значение updated_at всякий раз, когда обновляется его запись (ON UPDATE CURRENT_TIMESTAMP).Моя проблема в том, что значение create_at вводится как UTC, а значение updated_at вводится как EDT.

Может кто-нибудь помочь с исправлением и объяснением этой проблемы?

1 Ответ

0 голосов
/ 26 августа 2018

Мы не можем помочь вам с исправлением, потому что вы не показали никакого кода. Mysql дата, время и значения даты и времени не имеют понятия о часовом поясе. Значения меток времени используют UTC. Вы должны написать свой код, чтобы справиться с этими ограничениями. Если ваши данные всегда будут ограничены одним часовым поясом, просто приведите любые значения меток времени к этому часовому поясу:

 SELECT CONVERT_TZ(created_at, 'GMT', 'EDT'), updated_at
 FROM your_table

Это становится очень запутанным, когда вы начинаете использовать более одного часового пояса - лучшее решение - всегда хранить времена в UTC и изменять представление на внешнем интерфейсе (но это может быть немного боль, если вы работаете в операционных системах с поврежденным мозгом или не управляете конфигурацией сервера)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...