Значение метки времени MySQL больше, чем ‘2038-01-19 03:14:07’

#mysql #timestamp

#mysql #метка времени

Вопрос:

Мне интересно, что произойдет после 2038-01-19 03:14: 07 с полями таблицы, использующими TIMESTAMP в качестве типа данных?

Я всегда предпочитал, DATETIME но вы, очевидно, не можете присвоить CURRENT_TIMESTAMP этому типу значение по умолчанию. Я имею в виду, что 28 лет — это не так уж и много, если подумать (по крайней мере, на мой взгляд)… Так что же тогда произойдет со всеми этими TIMESTAMP полями?

Комментарии:

1. Я думаю, до тех пор у нас будет MySQL 2038, который поддерживает более длинные диапазоны. И, надеюсь, никто по-прежнему не будет использовать MySQL 5

Ответ №1:

Возможно, вы не сможете назначить CURRENT_TIMESTAMP столбцу DATETIME , но вы можете назначить NOW() ему.

Что касается проблемы y2k 38, я готов поспорить, что появятся более новые версии MySQL, которые решат эту проблему задолго до того, как это станет реальной проблемой.

Комментарии:

1. к сожалению, для установки NOW() мне нужно создать триггер. Хотя это приемлемое решение, триггеры не отображаются в экспорте phpMyAdmin (но отображаются с mysqldump) :/

2. Вам не нужно устанавливать триггер для добавления NOW() .. его можно добавить в ваш запрос insert / update… Возможно, я чего-то недопонимаю.

3. Я понимаю значения по умолчанию и как установить NOW (). Мне было больше интересно узнать общее мнение об отношении метки времени к DATETIME (мой личный фаворит — DATETIME). Но я просто закрою этот вопрос и скажу в заключение, что я согласен с тем, что проблема y2k 38 к тому времени будет решена с помощью более новой версии (надеюсь!)