方案
- 直接使用<![CDATA[ ]]>
<![CDATA[ AND #{birth} >= #{birth1} ]]>
- 时间格式如果不一致可使用DATE_FORMAT函数转换
<if test="createTime1 !=null and createTime1 !=''">
<![CDATA[
and DATE_FORMAT(create_time, '%Y-%m-%d') >= DATE_FORMAT(#{createTime1}, '%Y-%m-%d')
]]>
</if>
<if test="createTime2 !=null and createTime2 !=''">
<![CDATA[
and DATE_FORMAT(create_time, '%Y-%m-%d') <= DATE_FORMAT(#{createTime2}, '%Y-%m-%d')
]]>
</if>
注意:
在mybatis3.3.*版本之后使用上面代码应该会出现下面所示的错误:
解决方案,去掉 createTime2 !=''
比较,此时解决方案变为:
<if test="createTime1 !=null">
<![CDATA[
and DATE_FORMAT(create_time, '%Y-%m-%d') >= DATE_FORMAT(#{createTime1}, '%Y-%m-%d')
]]>
</if>
<if test="createTime2 !=null">
<![CDATA[
and DATE_FORMAT(create_time, '%Y-%m-%d') <= DATE_FORMAT(#{createTime2}, '%Y-%m-%d')
]]>
</if>