Date数据存入MySQL发现时间慢了一秒

EricTao2 2017-12-12 05:53:55
做的是移动端的后台接口,用的是Spring+SpringMVC+Spring Data Jpa+Hibernate4,数据库用的MySQL,有个需求是要在并发量的情况下插入数据,并实时统计某时间点和之前的记录数量(也就是<=),然后根据返回值set了Bean的一个字段,再save记录的,简单来说就是count然后set然后save就三步。但是怎么统计都有问题。最后打断点发现new Date()生成的时间和数据库存储的不一样,假如代码里是2017-12-12 12:30:00,那么数据库里的就是2017-12-12 12:30:01。我是直接调用的Jpa提供的SaveAndFlush()方法直接把带有Date类型的bean存进去的,虽然最后换了种方法成功解决了问题,但是想问问有没有人知道出现这种情况的原因。我是在一个事务里,还加了锁的情况下执行的。
...全文
540 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
奔跑的wilelm 2021-07-01
  • 打赏
  • 举报
回复 1

这个和Hibernate4框架没有关系,Date类型是long型数字,精度是到毫秒的,日志打印显示的是到秒的,时间在mysql存储的时候也是存数字,只不过分为date,datetime等类型,对精度的支持是不一样的,例如datetime没有设置三位小数精度,那么就会进行四舍五入,保留到秒,所以insert后和日志打印时间不同,需要注意的是mysql中建表时间字段需要设置精度,这样就存储和显示一致. 也可以参考如下博文: https://www.cnblogs.com/zaierzai/p/11989008.html

dgqjava 2017-12-13
  • 打赏
  • 举报
回复
很明显, 这一秒被膜拿去续了
EricTao2 2017-12-12
  • 打赏
  • 举报
回复
我在想是不是存入MySQL的时候,hibernate对于Date类型的毫秒位时间进行了四舍五入,然后存了进去,但是找了下没找到源码,也不能确定。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧