MySQL. DATETIME или TIMESTAMP?

Тип TIMESTAMP в MySQL обычно используется, чтобы оставить информацию о изменении записи, и, как правило, поле с этим типом обновляется каждый раз, когда меняется запись. Если Вы хотите сохранить определённое значение времени, Вам стоит использовать поле «DATETIME».

Ещё один важный нюанс: в MySQL и выше, значения в TIMESTAMP при записи конвертируются базой из местного времени во время по UTC, а при выборке — конвертируются назад, в местное время (Если точнее — во время, которое потребовал сервер). При DATETIME и других форматах времени такого не происходит, время хранится в «статическом» формате, если можно так сказать.

Также отмечу, что если выбирать между UNIX-вским TIMESTAMP или родным MySQL-ским DATETIME, то лучше выбрать родной формат. Почему? Вы сможете использовать встроенные функции MySQL (например так: SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)). Кроме того, если надо будет произвести операции с временем на PHP, сохранится возможность легко получить значение в UNIX timestamp с помощью самого запроса (SELECT UNIX_TIMESTAMP(my_datetime)). Но надо принимать во внимание предыдущий абзац и иметь ввиду разницу в часовых поясах.

Похожие вопросы
Добавить ответ
Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Нажимая кнопку «Отправить», я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности этого сайта.