最近在转型java,查询数据库使用mybatis,查询条件有个开始时间和结束时间,我使用的查询sql如下

SELECT * FROM dbo.Task WHERE time BETWEEN #{btime,jdbcType=DATE} AND #{etime,jdbcType=DATE}
输入的条件是2019-04-23 00:00:00和2019-04-23 23:59:59
执行程序查询的条数为0,但是直接在sqlserver查询是可以返回10条记录的,一开始以为是参数有问题,修改后发现问题依旧,就去查了下jdbcType的类型,发现jdbcType的Date返回格式是yyyy-MM-dd,如果使用yyyy-MM-dd HH:mm:ss查询需要使用jdbcType的TIMESTAMP类型,
将sql修改成 SELECT * FROM dbo.Task WHERE timeBETWEEN #{btime,jdbcType=TIMESTAMP} AND #{etime,jdbcType=TIMESTAMP}
OK。数据加载出来了, 特此记录一下,防止再犯。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄