MySQL中TIMESTAMP的确切最大值是多少?

时间:2018-07-09 09:23:56

标签: mysql

documentation指出-

  

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版本为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版本开始支持微秒,所以这不是问题。

我误会了什么还是这是配置问题?

谢谢

1 个答案:

答案 0 :(得分:2)

将列定义为TIMESTAMP表示它不支持微秒,因此将对.5及更高的值进行四舍五入,从而使该值超出范围。

该列需要定义为TIMESTAMP(6),以支持6位数的微秒。