mysql中DATADIFF()函数使用

时间:2020-12-08 01:25:07

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

    mysql中DATADIFF()函数使用

  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. }