sql 中DATEDIFF()函数返回一个日期差。IFNULL()函数(功能类似与三元运算符)

本文介绍了SQL DATEDIFF函数用于计算日期差的用法,并展示了IFNULL函数作为空值判断工具,以及如何结合不同类型的时间范围(近3月、6月、1年)进行筛选。同时,讲解了IFNULL与CASE/三元运算符的相似之处,以及DATEADD函数的替代作用。
摘要由CSDN通过智能技术生成

sql 中DATEDIFF()函数返回一个日期差,IFNULL()函数(功能类似与三元运算符)
(学习笔记仅供参考)

DATEDIFF()函数语法:
DATEDIFF ( datepart , startdate , enddate )
–其中datepart是你想要比较的日期的一部分,即可以指定为年/yy、月/MM、日/dd。
–startdate是第一个日期,enddate是结束日期。
–它的工作方式是从enddate中减去startdate。
例:
算出两个日期之间的天数:
SELECT DATEDIFF(day, ‘2001-01-01’, ‘2002-01-01’) AS Result;
结果为:Result =365
或例:
计算近几个月

<if test="type == 0">
        AND DATEDIFF(MM,a1.CREATE_TIME,NOW())&lt;=3      //近3个月
      </if>
      <if test="type == 1">
        AND DATEDIFF(MM,a1.CREATE_TIME,NOW())&lt;6     //近6个月
      </if>
      <if test="type == 2">
        AND DATEDIFF(MM,a1.CREATE_TIME,NOW())&lt;12        //近12个月
      </if>

IFNULL()函数
其表达式为:IFNULL(expr1,expr2),(包括数字,字符串)

含义是:如果第一个参数不为空,则返回第一个参数,否则返回第二个参数。
例:

CASE WHEN t8.APPOINTMENT_ATTRIBUTE='外部'  THEN IFNULL(T3.REAL_TIME, 0) ELSE 0 END AS INNER_TIME

IFNULL(T3.REAL_TIME, 0)意思:
如果T3.REAL_TIME != null 返回 T3.REAL_TIME。T3.REAL_TIME == null 返回 0
和case when then else end 或者三元运算符功能差不多

或者使用DateAdd()函数可以达到同样的效果
语法:
DATEADD (datepart, number, date)
–Datepart :它指定要在其中添加或减去特定时间间隔的日期部分。 它可以具有诸如年,月,日和周的值。
– 数字:这是我们要增加或减少日期的数字。 应该是整数
– 日期:我们可以在此处指定日期。 在此日期,我们要在datepart上添加一个指定的数字

<if test="aSPDTO.type == 1 ">
      (SELECT DateAdd(Month,-3,getdate()))      //近3月
    </if>
    <if test="aSPDTO.type == 2 ">
      (SELECT DateAdd(Month,-6,getdate()))     //近6月
    </if>
    <if test="aSPDTO.type == 3 ">
      (SELECT DateAdd(YEAR ,-1,getdate()))      //近1年
    </if>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值