Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7b5825b6] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@2137505285 wrapping dm.jdbc.driver.DmdbConnection@281d9254] will not be managed by Spring
==> Preparing: SELECT id, device_id, day_time, failure, create_time, update_time, deleted FROM tb_failure WHERE deleted = 0 AND ( device_id = ? AND day_time BETWEEN ? AND ? ) ORDER BY device_id ASC, day_time ASC
==> Parameters: 1(String), 2026-04-01 00:00:00.0(Timestamp), 2026-04-30 23:59:59.999999999(Timestamp)
<== Columns: id, device_id, day_time, failure, create_time, update_time, deleted
<== Row: 57, 1, 2026-05-01 00:00:00.000000, 0.0, 2026-05-25 18:03:40.677000, 2026-05-25 18:03:40.677000, 0
<== Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7b5825b6]
-- 改成这样也不行
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@74b53705] was not registered for synchronization because synchronization is not active
JDBC Connection [HikariProxyConnection@76633552 wrapping dm.jdbc.driver.DmdbConnection@69b5bb66] will not be managed by Spring
==> Preparing: SELECT id, device_id, day_time, failure, create_time, update_time, deleted FROM tb_failure WHERE deleted = 0 AND ( device_id = ? AND (day_time > = ? AND day_time <= ?) ) ORDER BY device_id ASC, day_time ASC
==> Parameters: 1(String), 2026-04-01 00:00:00.0(Timestamp), 2026-04-30 23:59:59.999999999(Timestamp)
<== Columns: id, device_id, day_time, failure, create_time, update_time, deleted
<== Row: 57, 1, 2026-05-01 00:00:00.000000, 0.0, 2026-05-25 18:03:40.677000, 2026-05-25 18:03:40.677000, 0
<== Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@74b53705]
执行SQL就可以,可能是客户端处理了
sql复制代码
SELECT id, device_id, day_time, failure, create_time, update_time, deleted FROM
tb_failure WHERE deleted = 0 AND ( device_id = 1 AND day_time BETWEEN '2026-04-01 00:00:00.0' AND '2026-04-30 23:59:59.999999999' ) ORDER BY device_id ASC, day_time ASC
二、解决
2.1、问题分析
差异点:MyBatis 日志显示参数 day_time BETWEEN ? AND ? 的结束值是 2026-04-30 23:59:59.999999999(9位纳秒),但实际返回了 2026-05-01 00:00:00.000000 的数据。