java的LocalDateTime存入MySQL中datetime被四舍五入,导致查询异常

异常描述:

1.mysql数据库,插入记录,对象create_time(LocalDateTime)字段是手动赋值的,recordVo.setCreateTime(LocalDateTime.now());


2.查询时的条件,时间字段 赋值如下,有时候能查出来,有时候不行。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
String formattedDateTime = bookingOrderPo.getCreateTime().format(formatter);
param.put("date", formattedDateTime);

 

3.排查发现
数据库中该条记录的create_time是 21:53:04秒,但是查询时间是21:51:03秒,

排查结果就是LocalDateTime获取的时间,比如 2024-04-09T21:53:03.945,入库会被四舍五入,存成2024-04-09T21:53:04,但是查询时formatter 只根据秒来查。

 

4.解决措施

对象赋值时先统一格式化,再入库,后面查询就没有问题了。

 

 

 
posted @ 2024-04-09 10:45  乌云de博客  阅读(231)  评论(0编辑  收藏  举报