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.解决措施
对象赋值时先统一格式化,再入库,后面查询就没有问题了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2015-04-09 转!!Java JTable 根据表格内容 自动调整表格列宽
2015-04-09 MYSQL 编码方式 ------导入 .sql 文件 报编码错误
2015-04-09 转!!MYSQL数据类型
2015-04-09 Java JTable 表格 获取存储路径,文件名 ,导出excel表格