当前使用版本(必填,否则不予处理)
3.5.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
更新到3.5.3.1问题依然存在
使用LocalDateTime.of(LocalDate.now(), LocalTime.MAX)作为时间查询条件时,在sql层面会变为第二天0点, 但是在 LocalDateTime.now().withHour(23).withMinute(59).withSecond(59) 这样去使用就是正常的。 测试了直接使用 mybatis 是没有任何问题的
重现步骤(如果有就写完整)
使用Wrappers去构建查询条件
LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
比如 Wrappers.
报错信息
比如 我想要的是 create_time <= '2023-02-25 23:59:59' ,结果在sql日志中看到的是 create_time <= '2023-02-26 00:00:00'
Comment From: miemieYaho
mp又不会改你的参数
Comment From: xiekong
但是我在debug的时候看到传入的参数是对的,打印出来的sql就变了
Comment From: xiekong
然后我直接使用mybatis,不使用mp,打印出来的sql值就是对的
Comment From: gogym
这是因为mysql的数据类型为[datetime] 比如当创建时间是2020-04-25 22:30:50.771,毫秒被四舍五入为2020-04-25 22:30:51
解决:将mysql时间类型改为datetime(3)