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
    在这里插入图片描述
  2. mysql字段精确到毫秒设置长度为3(不是小数点)
MODIFY COLUMN `end_time` timestamp(3) NULL DEFAULT NULL COMMENT '任务最迟完成时间';

再去插入毫秒位999时间戳就能存下
在这里插入图片描述

原创文章 6 获赞 12 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sinat_36304803/article/details/106121957