Отказ от ответственности: Это может быть дубликат дата-время против отметки времени? , но я чувствую, что не уверен в ответах:
Мой вопрос:
Каковы веские причины выбирать столбцы TIMESTAMP вместо столбцов DATETIME в MySQL?
Я почти уверен, что не знаю всего о различиях между этими двумя, поэтому я постараюсь перечислить основные преимущества DATETIME (DT
) по сравнению с TIMESTAMP (TS
), насколько мне известно. :
DT
читается человеком (TS
не без использования TO_DATE
)
DT
имеет возможный интервал времени в 8999 лет (1000-01-01 00:00:00
до 9999-12-31 23:59:59
)
(TS
только около 68 лет, 1970-01-01
до 2038-01-19
)
DT
поля, кажется, работают лучше (согласно этому сообщению в блоге )
DT
может использоваться для расширенного расчета даты (SELECT NOW() + INTERVAL 2 DAY
)
И наоборот:
TS
требуется всего 4 байта (DT
использует 8)
TS
сохраняются как значения UTC и изменяются в соответствии с настройкой часового пояса клиента
TS
столбцы могут служить «журналом» для мониторинга, когда в строке есть изменения
Единственной причиной, по которой я его использую, является мониторинг строк, но, глядя на диапазон TIMESTAMP
, который закончится через "только" 28 лет *, я бы предпочел использовать триггер вставки или обновления.
Итак, что мне не хватает? Я до сих пор не вижу действительно хорошей причины выбора метки времени для каких-либо целей?
* Я знаю, это кажется довольно длинным, но еще в 60-х годах некоторые инженеры также решили сократить 2 байта поля года, потому что их компьютерные системы никогда не будут работать до тех пор, пока 2000 год .....