Почему бы не использовать TIMESTAMP MySQL по всем направлениям? - PullRequest
2 голосов
/ 16 июня 2009

Если вам нужно, чтобы ваше веб-приложение переводило между часовыми поясами для каждого пользователя, почему бы не использовать TIMESTAMP по всем направлениям для всех полей даты / времени? Учтите, что значения TIMESTAMP хранятся в UTC и при получении преобразуются в часовой пояс, установленный для соединения.

Я задал этот вопрос на IRC, прочитал документацию по MySQL, интенсивно искал в Google и спросил своих коллег, и мне еще не удалось найти вескую причину не использовать TIMESTAMP.

Примечание: я понимаю, что TIMESTAMP имеет ограниченный диапазон 1970 - 2038 гг .; это не будет проблемой в моем случае. Также я использую PHP с MySQL.

Ответы [ 3 ]

1 голос
/ 16 июня 2009

DATETIME для произвольных дат и времени, которые вы используете в своих данных.

TIMESTAMP предназначен для автоматического обновления времени. Если вы хотите знать, когда строка была вставлена ​​/ обновлена, используйте TIMESTAMP.

Кроме того, имейте в виду, что TIMESTAMP хранится только в * UTC *1005* - он преобразуется в локальный часовой пояс сервера, прежде чем он будет передан обратно как часть запроса.

В вашем случае вам лучше использовать DATETIME. Если вы беспокоитесь о UTC, это нормально - просто создайте даты в UTC, а не по местному времени. Используйте UTC_TIMESTAMP .

1 голос
/ 16 июня 2009

Я думаю, что ваш ответ здесь:

Я понимаю, что у TIMESTAMP ограниченный диапазон 1970 - 2038 гг .; , что не будет проблемой в моем случае.

Я бы осторожно высказал предположение о долговечности проектов , особенно когда речь идет о схемах баз данных . Базы данных имеют тенденцию оставаться на месте и использоваться в течение длительного времени после того, как приложения, которые их использовали, исчезли.

0 голосов
/ 27 января 2012

Ответ Рэндальфо неверен по многим фактам!

Метки времени не нужно автоматически обновлять при создании ИЛИ обновлений.

Кроме того, метки времени переводятся в местное время КЛИЕНТА, а не в сервер.

Просто посмотрите на документы MySQL для даты и времени.

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