Mysql保存23:59:59时,自动加一秒的问题

今天遇到一个bug。
数据为 2019-08-26 23:59:59 ,存入数据库变为2019-08-27 00:00:00自动加一秒。

并且有些数据加一秒有些没有。根据日志发现参数分别为:
2019-08-26 23:59:59.026(Timestamp)
2019-08-26 23:59:59.845(Timestamp)
当即怀疑是因为后面的毫秒数的原因,会不会类似四舍五入呢?带着这个疑问查了资料发现......

经查阅:


image.png

从这篇Fractional Seconds in Time Values中我们看到5.6.4之前的版本中是不保存毫秒数的,那么高版本中是如何处理的?

image.png

从这篇Conversion Between Date and Time Types中我们看到毫秒数在低于500的时候会舍弃掉,大于等于500会进位,类似四舍五入,既然找到问题的本质原因。

那么只需要设置一下日期的毫秒数即可,防止进位

calendar.set(Calendar.MILLISECOND,0);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,167评论 6 13
  • 一、MySQL 获得当前日期时间 函数 1.1 获得当前日期 + 时间(date + time) 函数:now()...
    梦遇缱绻的馥郁阅读 875评论 0 1
  • “赤子孤独了,会创造一个世界。” 这是《傅雷家书》中扉页上的一句话,也是本书的主旨。 傅雷对孩子的教育既有言传,也...
    空谷幽兰_aa95阅读 328评论 2 2
  • 吃完早饭已经是早上十点多,两顿饭的习惯从嫁入陕西人家开始。家里收拾干净,开始跟闺女玩耍!此刻,LG在拼图,闺女在捣...
    睡不着的焦虑症患者阅读 148评论 0 0
  • 你的身影已远离,此生再不会清晰。今世的相遇,只是一个美好的回忆,我会好好珍藏。
    扯淡De承诺阅读 382评论 0 0