mysql中DATADIFF()函数使用

时间:2022-09-19 01:05:40


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

mysql中DATADIFF()函数使用

定义和用法

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

我想说的是:在使用DIFFDATE()的时候,我们总是想要使用绝对值
 但是在网上是没有的,或者说是想要分情况

 我在这里提出一两个建议和思路:可以在sql中case when if else end分情况查询
也可以从前台传递过来一个参数,作为判断是进还是出
 if(fx.equal('1')){

sql.append('and datediff(shijian,'"+time+"')<="+ tianshu +" and datediff(shijian,'"+time+"')>0')
 }else{  
sql.append('and datediff('"+time+"',shijian)<="+ tianshu +" and datediff('"+time+"',shijian)>0') 
 }