用SQL语句判断两个时间 差>24小时

2024-11-09 02:33:35
推荐回答(3个)
回答(1):

mssql的datadiff对时间的计算很不严谨啊,
select DATEDIFF(hour, '20110101 00:22:00' , '20110102 00:00:00' ) 你看看,这样也是24小时,
但其实是23小时多差22分钟,也就是说,这个计算的过程是忽略分和秒的影响的,看你的程序的要求了,如果只看小时,就可以,如果要考虑分钟或秒 ,直接是不行的
精确的比较要分两个部分,就是年月日一个部分,时间一个部分
年月日 分别看 年是否相同,月是否相同,这两个如果不同则肯定>24小时,在看日是否相同,如果日相同肯定<=24小时,如果日不同 ,select DATEDIFF(dd, '20110101 00:22:00' , '20110102 00:00:00' ) 是否>=2,如果满足也肯定>24小时,如果=1 就比较麻烦,还要在判断 时分秒 ,

因为 select DATEDIFF(hh, '2011/01/01 00:22:00' , '2011/01/02 00:55:00' ) =24
select DATEDIFF(hh, '2011/01/01 00:22:00' , '2011/01/02 00:00:00' ) =24

回答(2):

DATEDIFF(hour, time1 , time2 )> 24

回答(3):

一楼正解