关于mybatics中起始与结束时间的处理方法
关于mybatics中起始与结束时间的处理方法
2020年3月30日原创
我们从前端获取到的数据是:
ORDER_DATE_START : 2010-10-10 开始时间
ORDER_DATE_END :2019-11-11 结束时间
我们需要获取的筛选范围是
ORDER_DATE 大于等于ORDER_DATE_START 并且小于等于ORDER_DATE_END 的结果
处理:
开始时间处理:
开始时间to_date(#{ORDER_DATE_START},‘yyyy-mm-dd’) 后,内容变成2010-10-10 00:00:00
结束时间处理:
结束时间TO_DATE(#{ORDER_DATE_END} || ’ 23:59:59’, ‘yyyy-MM-dd HH24:mi:ss’) 后,内容变成2019-11-11 23:59:59
也就是结束时间使用“||”拼接“ 23:59:59”,注意23:59:59以前有有个半角的空格
处理后语句的意思就是:
大于等于开始日期的 00:00:00,小于等于结束日期的 23:59:59
使用的知识点:
||字符串拼接
to_date(),注意前后的格式是不一样的 ‘yyyy-mm-dd’ ‘yyyy-MM-dd HH24:mi:ss’
<!-- 查找 -->
<select id="listOrderDetail" parameterType = "map" resultType="map" >
SELECT O.ORDER_DATE FROM K_ORDER O WHERE 1=1
<if test="ORDER_DATE_START != null and ORDER_DATE_START != ''">
AND O.ORDER_DATE >= to_date(#{ORDER_DATE_START},'yyyy-mm-dd')
</if>
<if test="ORDER_DATE_END != null and ORDER_DATE_END != ''">
AND O.ORDER_DATE <= TO_DATE(#{ORDER_DATE_END} || ' 23:59:59', 'yyyy-MM-dd HH24:mi:ss')
</if>
</select>