Каковы веские причины для выбора TIMESTAMP вместо столбцов DATETIME в MySQL?
Отказ от ответственности: это может быть дубликатдата и время?Но я чувствую, что не уверен в ответах:
Мой вопрос:
Каковы веские причины для выбора 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 года .....