日期:2014-05-18  浏览次数:20476 次

请教一个时间比较问题,为什么不论系统时间在哪个区段,结果总为真?
IF((   Convert(varchar(8),getdate()   ,108)   between   '   05:30:00 '   and   '23:59:59 ')  
AND   (   Convert(varchar(8),DATEADD(DAY,1,getdate()),108)   between   '   05:30:00 '   and   '23:59:59 '))
print   'YES '
ELSE
PRINT   'NO '

不论系统时间在哪个区段,结果总为真

------解决方案--------------------
(( Convert(varchar(8),getdate() ,108) between ' 05:30:00 ' and '23:59:59 ') 取出来是系统当天时间部分.
Convert(varchar(8),DATEADD(DAY,1,getdate()),108)是当天后面一天的时间的相同时刻的时间部分.
这样判断,基本上意义不是很大`,条件一个就够了.
再说也不是结果总为真,如果楼主有兴趣可以把 '23:59:59 '改小一点 ,就可以测试了