mysql中DATADIFF()函数使用

  1. 用过mssql的朋友应该了解datediff函数了,在mssql中,该函数的第一个参数是开始日期,第二个是结束日期,开始日期应该在结束日期之前,这样算出来的结果是大于或等于0的一个数,反之是一个负数,但在MySQL中就完全相反,你若想得到一个正数结果,那第一个日期应该填结束日期,第二个参数应该填开始日期,很奇葩的设计。

  2. 定义和用法

    DATEDIFF() 函数返回两个日期之间的天数。

    语法

    DATEDIFF(date1,date2)

    date1 和 date2 参数是合法的日期或日期/时间表达式。

    注释:只有值的日期部分参与计算。

    实例

    例子 1

    使用如下 SELECT 语句:

    SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate

    结果:

    DiffDate
    1

    例子 2

    使用如下 SELECT 语句:

    SELECT DATEDIFF('2008-12-29','2008-12-30') AS DiffDate

    结果:

    DiffDate
    -1
  3. 我想说的是:在使用DIFFDATE()的时候,我们总是想要使用绝对值
  4. 但是在网上是没有的,或者说是想要分情况
  5. 我在这里提出一两个建议和思路:可以在sql中case when if else end分情况查询
  6. 也可以从前台传递过来一个参数,作为判断是进还是出
  7. if(fx.equal('1')){
  8. sql.append('and datediff(shijian,'"+time+"')<="+ tianshu +" and datediff(shijian,'"+time+"')>0')
  9. }else{  
  10. sql.append('and datediff('"+time+"',shijian)<="+ tianshu +" and datediff('"+time+"',shijian)>0') 
  11. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值