对数据库中date类型字段进行条件查询以及sql中or和and的执行顺序

1、问题:

	1、对数据库中date类型字段进行条件查询
	2、sql中or和and的执行顺序
1、对数据库中date类型字段进行条件查询
 <if test="forecastTime != null and forecastTime != ''">
      and DATE_FORMAT(forecast_time,'%Y-%m-%d') = #{forecastTime,jdbcType=VARCHAR}
 </if>

DATE_FORMAT函数在查询的时候把date类型的字段转换为字符串类型,相当于java中的SimpleDateFormat这个类,
‘%Y-%m-%d’ 这个是转换模板,forecastTime则为前端传过来的String 类型的日期
详情见 https://www.cnblogs.com/awzf/p/9835156.html

2、sql中or和and的执行顺序
select <include refid="Base_Column_List"/>
    from water_forecast_record
    where (is_pass = 1 or is_pass = 2)//这里加不加括号是两种查询情况

    <if test="forecastTime != null and forecastTime != ''">
      and DATE_FORMAT(forecast_time,'%Y-%m-%d') = #{forecastTime,jdbcType=VARCHAR}
    </if>
    <if test="needMeeting != null">
      and need_meeting = #{needMeeting,jdbcType=INTEGER}
    </if>
    <if test="reportPeople != null and reportPeople != ''">
      and report_people like concat("%",#{reportPeople,jdbcType=VARCHAR},"%")
    </if>
    <if test="checkPeople != null and checkPeople != ''">
      and check_people like concat("%",#{checkPeople,jdbcType=VARCHAR},"%")
    </if>
  </select>
	关系型运算符优先级高到低为:NOT >AND >OR	 
	where (is_pass = 1 or is_pass = 2) 这里如果不加()or是会最后执行的

参考文章:https://blog.csdn.net/bingguang1993/article/details/79657256

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值