你的OndTime 和 AheadTime要是datetime类型或同类型就可以,这个语句肯定没问题,如果有问题,只能是你的字段有什么问题,或者是这两个时间字段里有什么特殊的其它类型数据。

解决方案 »

  1.   

    这两个都没试过了
    if getdate()+1-getdate()>'08:00:00'
    print 'ksdlfjk'
    use pubs
    go
    select 1 from titles where (getdate()+1-getdate()>'08:00:00')
      

  2.   

    如果你的OndTime 和 AheadTime是字符型的,就用convert()或cast()把他们转变过来。
    convert(datetime,OndTime)-convert(datetime,AheadTime)
      

  3.   

    SELECT OndTime
    FROM TB_DutySerial
    where(datediff(hour,ondTime,AheadTime)>8)
      

  4.   

    SELECT OndTime
    FROM TB_DutySerial
    WHERE (datediff(hh,ondtime,aheadtime)>0)
      

  5.   

    SELECT OndTime FROM TB_DutySerial WHERE (datediff(hh,ondtime,aheadtime)>0)
      

  6.   

    --如果你的是aheadtime,ondtime是datetime类型:
    SELECT OndTime FROM TB_DutySerial WHERE datediff(hh,aheadtime,ondtime)>8
    如:
    select datediff(day,'2001-1-1','2002-1-1') 天
    select datediff(month'2001-1-1','2002-1-1') 月
    select datediff(year,'2001-1-1','2002-1-1') 年
      

  7.   

    convert(char(2),datepart(mm,getdate())) 将时间分离出来再比较,绝对完全匹配. 我一直都这样做. 只要是日期型.(datetime).都可以