mybatis 时间范围查询

本文探讨了在MyBatis框架中进行日期范围查询时遇到的问题,即当开始时间和结束时间相同导致查询失效。解决方案是通过使用DATE_FORMAT函数转换日期格式,确保查询的精确性。通过在XML映射文件中添加条件判断并应用DATE_FORMAT,可以有效地处理这种情况,提高查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis框架支持直接用>=或<=查询日期范围,如:

<if test="startTime != null and startTime != ''">

   and timer.create_time  &gt;= #{startTime}

<if test="endTime != null and endTime != ''">

    and timer.create_time  &lt;= #{endTime}

</if>

但这种方式,如果开始时间和结束时间是同一个日期,就查不出来了,一种解决方法是用DATE_FORMAT转一下日期,如:

<if test="startTime != null and startTime !='' ">

   <![CDATA[ and DATE_FORMAT(create_time, '%Y-%m-%d') >= #{startTime} ]]>

</if>

<if test="endTime != null and endTime !='' ">

    <![CDATA[ and DATE_FORMAT(create_time, '%Y-%m-%d') <= #{endTime} ]]>

</if>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值