Mybatis实现时间范围查询
所有条件的时间都以ckchutime字段为例,第一个if判断指ckchutime是否为空,不为空则进入内嵌if判断这里面的内嵌两个if判断主要是实现根据不同的格式去查询条件时间,上者是根据年月查询数据,下者是根据年月日查询数据。
第二个if判断指excStartTime是否为空,excStartTime 是实体新增的一个对象,主要用于存储起始时间,通过excStartTime 不为空查询ckchutime大于等于excStartTime起始时间的条件,这里大于号和小于号在mybatis中不起作用,所以要转换一下为转义符 >= 等同于>=
第二个if判断指excEndTime是否为空,excEndTime 是实体新增的一个对象,主要用于存储结束时间,通过excStartTime 不为空查询ckchutime小于等于excEndTime结束时间的条件,这里大于号和小于号在mybatis中不起作用,所以要转换一下为转义符 <= 等同于<=
<if test="ckchutime!=null and ckchutime!=''">
<if test="timebiaoshi=='yearmane'">
AND DATE_FORMAT(ckchutime,'%Y-%m') = '${ckchutime}'
</if>
<if test="timebiaoshi=='yearmanedate'">
AND DATE_FORMAT(ckchutime,'%Y-%m-%d') = '${ckchutime}'
</if>
</if>
<if test="excStartTime != null and excStartTime!=''">
AND DATE_FORMAT(ckchutime,'%Y-%m-%d') >= '${excStartTime}'
</if>
<if test="excEndTime != null and excEndTime!=''">
AND DATE_FORMAT(ckchutime,'%Y-%m-%d')<= '${excEndTime}'
</if>