Mysql5.6 timestamp datetime 精度问题(23:59:59 无法存储)

存储23:59:59 出现时间自动加一秒

出现一个隐藏bug,mysql从5.5迁移到5.6后,前端在传时间戳1589558399999 到java后端转成 2020-05-15 23:59:59 存储到mysql后 会变成 2020-05-16 00:00:00.0,查资料发现是因为保存到数据库时,MySQL会对毫秒大于500的数据进行进位,所以出现了+1秒的情况

解决方法

  1. 代码中修改毫秒值为0
    Mysql5.6 timestamp datetime 精度问题(23:59:59 无法存储)
  2. mysql字段精确到毫秒设置长度为3(不是小数点)
MODIFY COLUMN `end_time` timestamp(3) NULL DEFAULT NULL COMMENT '任务最迟完成时间';

再去插入毫秒位999时间戳就能存下
Mysql5.6 timestamp datetime 精度问题(23:59:59 无法存储)

上一篇:分布式缓存Redis的集群-主从复制


下一篇:php获取本年、本月、本周时间戳和日期格式(2020)