目前很多公司保存时间字段采用的是int类型,存储10位的时间戳。但,可想int类型的范围是多长?
A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295.
意思就是有符号的时候只能存储到2147483647!换算成时间就是2038-01-19 11:14:07。
如果到那个时间点后,再插入数据将会怎样呢?
溢出了。
到时数据将插入不了~~而时间戳转日期的函数unix_timestamp也使用不了,那时mysql将何去何从呢?或许在接下去的版本会修改吧。
2025-6-3 最近重新看之前文章,再更新下。
最新mysql版本UNIX_TIMESTAMP已支持超2038年限制,如下截图:
8.0.28及之后版本,在64位平台上,UNIX_TIMESTAMP([date])中的date值可达到3001-01-19 03:14:07.999999
Comments