2016-11-24 4 views
0

Я использую базу данных mySQL для хранения ряда входов, которые питают модель. У меня есть несколько разных дат, которые хранятся как TIMESTAMP. Тем не менее, некоторые из значений могут составлять сотни лет в будущем. Когда я смотрю в БД, они хранятся как «0000-00-00 00:00:00», когда фактическая метка времени должна быть чем-то вроде «2850-12-01 00:00:00».mySQL - максимальное значение для метки времени

Во время поиска в Google я заметил, что максимальная ценность - это когда-то в 2038 году. Кто-нибудь нашел работу для более длинных TIMESTAMP?

ответ

1

Вы можете конвертировать их в DATETIME, он будет хранить то, что вы хотите. Сравнить:

MariaDB [test]> create table t (t timestamp, d datetime); 
Query OK, 0 rows affected (0.59 sec) 

MariaDB [test]> insert into t values ('2850-12-01 00:00:00','2850-12-01 00:00:00'); 
Query OK, 1 row affected, 1 warning (0.08 sec) 

MariaDB [test]> select * from t; 
+---------------------+---------------------+ 
| t     | d     | 
+---------------------+---------------------+ 
| 0000-00-00 00:00:00 | 2850-12-01 00:00:00 | 
+---------------------+---------------------+ 
1 row in set (0.00 sec) 
+0

Это сработало. Я не понимал, что DATETIME доступен на mySQL - некоторое время назад кто-то сказал мне, что при перемещении кода с MSSQL на mySQL вам нужно было преобразовать DATETIME в TIMESTAMP! – John

Смежные вопросы