#mysql #datetime #timestamp #timezone
#mysql #дата и время #временная метка #Часовой пояс
Вопрос:
У меня есть столбец в базе данных с типом TIMESTAMP. Проблема в том, что когда я выбираю записи, этот столбец имеет другое время, чем у меня в моей базе данных (смена на 7 часов). Я предположил, что проблема в часовом поясе, поэтому я изменил тип столбца с TIMESTAMP на DATETIME, но все же, когда я выбираю сервер записей, он получает его со сдвинутым временем.
Должен ли я использовать другой тип данных?
Комментарии:
1. Это может быть проблема с драйвером и / или клиентом. Или, может быть, значение не было сдвинуто во время изменения типа данных? в TIMESTAMP оно сохраняется как GMT, и возможно, что оно не было пересчитано в исходный часовой пояс (поскольку эта информация отсутствует в данных). Попробуйте вставить новые данные, используя CLI local, на сервер и сравните, сдвигается ли он во время извлечения через локальный CLI и через ваше клиентское программное обеспечение.
2. С
TIMESTAMP
, это ожидаемое поведение. Применяется часовой пояс сеанса. Однако приDATETIME
этом не должно происходить никакого сдвига. Возможно, вы захотите прочитать dev.mysql.com/doc/refman/8.0/en/datetime.html и dev.mysql.com/doc/refman/8.0/en/time-zone-support.html