#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 к тому времени будет решена с помощью более новой версии (надеюсь!)