В основном timestampsTz () означает Timestamp with Timezone
, тогда как timestamps () похоже на Timestamp without timezone
TimestampsTz()
- представление для определенного момента времени.Корректировка этого времени производится часовым поясом, связанным с вашей системой.
Обычный timestamps()
больше похож на обычные часы.
Посмотрите на этот пример:
Если вы используете функцию timestamps()
, вы также сохраните часовой пояс, выбранный вашей средой.Если вы используете timestampsTz()
, вы не сможете сохранить часовой пояс.
Примечание: Каждый раз, когда хранится с помощью timestampsTz (), сохраняется в UTC (Всемирное координированное время).
Полагаю, было бы неплохо использовать timestamp without timezone
, когда все ваши данные наверняка находятся в той же зоне, или у вас там есть другой слой, который обрабатывает преобразование времени.
Я нашел хороший пример на StackExchange , который я процитирую здесь:
Например, представьте, что вы, скажем,2013-06-15 (еще не в летнее время) запланировали какое-то событие на 2013-01-15 10:00 (которое уже будет в летнее время), а в 2013-06-15 ваш регион был назначен для принятия летнего времени;но через некоторое время правительство изменило правило и заявило, что ваш регион больше не будет использовать летнее время, и внезапно ваше запланированное время станет 2013-01-15 11:00 (вместо 10:00), что если вы используете метку времени WITHчасовой пояс, и держите ваши конфигурации TZ в актуальном состоянии.Конечно, вы также можете заметить, что такие случаи можно обрабатывать и с часовым поясом, если вы отслеживаете изменения правил в интересующих вас регионах / часовых поясах и обновляете соответствующие записи.
Обновление:
В базе данных нормальный timestamps()
будет выглядеть как
2004-10-19 10:23:54
, тогда как timestampsTz()
выглядит как
2004-10-19 10:23:54+02
Обновление 2:
Эти функции в Laravel доступны для каждого типа базы данных.Но это отличается только для PostgreSQL.Посмотрите документы: PostgreSQL Timestamp .В других базах данных информация о часовом поясе включается в метку времени автоматически.
Во всех других базах данных это будет иметь тот же вывод.