TIMESTAMP值的范围是'1970-01-01 00:00:01.000000'至'2038-01-19 03:14:07.999999'
但是当我尝试输入最大值时得到此提示:
mysql> insert into integration_table (`TIMESTAMP`) VALUES ('2038-01-19 03:14:07.999999');
ERROR 1292 (22007): Incorrect datetime value: '2038-01-19 03:14:07.999999' for column 'TIMESTAMP' at row 1
如果我逐渐减小该值,则可以使用的最大值为'2038-01-19 03:14:07.499999'
mysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)
(在Docker中运行)`TIMESTAMP` timestamp NULL DEFAULT NULL,
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
我知道MySQL从5.6.4版本开始支持微秒,所以这不是问题。
我误会了什么还是这是配置问题?
谢谢
答案 0 :(得分:2)
将列定义为TIMESTAMP
表示它不支持微秒,因此将对.5及更高的值进行四舍五入,从而使该值超出范围。
该列需要定义为TIMESTAMP(6)
,以支持6位数的微秒。