我有一个MySQL表,该表有一个名为“ created_at”的列,该列是TIMESTAMP字段。每当我尝试插入大于2037的datetime时,都会出现以下错误:
#1292 - Incorrect datetime value: '2039-06-18 16:54:35' for column 'created_at' at row 1
我知道这是32位MySQL的问题,但是我正在运行64位,不是解决方案吗?
以下是我的MySQL版本的命令输出:
mysqld Ver 5.7.26-0ubuntu0.18.04.1 for Linux on x86_64 ((Ubuntu))
阅读this提示使用TIMESTAMP字段是问题,而使用DATETIME字段可以解决问题,这是正确的吗?
答案 0 :(得分:3)
出于兼容性原因,TIMESTAMP仍为UNIX TIMESTAMP(32位)...
您阅读的建议是正确的,请改用DATETIME。
答案 1 :(得分:2)
您应该使用DATETIME
数据类型。
The DATE, DATETIME, and TIMESTAMP Types
TIMESTAMP数据类型用于包含日期和时间部分的值。 TIMESTAMP的UTC范围为'1970-01-01 00:00:01'UTC到'2038-01-19 03:14:07'UTC。