Можно создать дубликат:
datetime vs timestamp?Отметка времени Unix VS DateTime
У меня есть Mysql таблицу, которая содержит столбец add_date
. Он отслеживает дату/время, когда запись была добавлена в базу данных.
Запросы на основе этой таблицы: 2 часа назад, 4 недели назад, 1 год назад и т.д.
- Display /месяц год. Таким образом, пользователю может быть разрешено выбирать записи только в 2009 году.
Что было бы лучше в этом случае - временная отметка unix или дата?
Прямо сейчас я использую оба варианта, но поскольку таблица будет иметь миллионы записей с течением времени, наличие обоих столбцов может повлиять на размер базы данных.
Unix timestamp, похоже, лучше для преобразования в 2 hours
назад формат в PHP, а также он не зависит от времени. Но datetime имеет лучшую читаемость, и сделать запрос для конкретной даты/времени/года представляется проще.
Ваше предложение?
Это. Просто используйте UNIX_TIMESTAMP (your_column), если вы хотите играть с меткой времени на конце php. Но в вашей базе данных используйте собственный тип даты для хранения дат. Более того, данные в вашей базе данных могут использоваться другими приложениями, которые могут предпочесть формат даты SQL, чем временные метки. – Arkh
Будет ли какая-либо проблема конвертировать дату в временные метки unix по отношению к часовому поясу? – Yeti
@Lost_in_code хороший вопрос на самом деле. Существует ряд факторов, настройка часового пояса mySQL-сервера и настройка часового пояса системы, которые PHP будет использовать по умолчанию. В общем, поля mySQL DATETIME не чувствительны к часовому поясу. Пока вы сохраняете даты UTC, вы должны иметь возможность легко преобразовывать их в метки времени, но будьте осторожны, если mySQL и/или PHP имеют часовые пояса, отличные от UTC. Связано: http://stackoverflow.com/questions/18449/dealing-with-php-server-and-mysql-server-in-different-time-zones –