sql中时间如何运算?
select * from table1 where ht_ctn-getdate()<7
ht_ctn是一个时间字段,他减去当前时间<7为条件.但是这个语句好象得不到想要的结果.

解决方案 »

  1.   

    DATEDIFF
    返回跨两个指定日期的日期和时间边界数。 语法
    DATEDIFF ( datepart , startdate , enddate ) 参数
    datepart是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft&reg; SQL Server&#8482; 识别的日期部分和缩写。日期部分 缩写 
    year yy, yyyy 
    quarter qq, q 
    Month mm, m 
    dayofyear dy, y 
    Day dd, d 
    Week wk, ww 
    Hour hh 
    minute mi, n 
    second ss, s 
    millisecond ms 
      

  2.   

    DATEDIFF
    返回跨两个指定日期的日期和时间边界数。 语法
    DATEDIFF ( datepart , startdate , enddate ) 参数
    datepart是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft&reg; SQL Server&#8482; 识别的日期部分和缩写。日期部分 缩写 
    year yy, yyyy 
    quarter qq, q 
    Month mm, m 
    dayofyear dy, y 
    Day dd, d 
    Week wk, ww 
    Hour hh 
    minute mi, n 
    second ss, s 
    millisecond ms 
      

  3.   

    select * from table1 where DateDiff(day,getdate(),ht_ctn)<7
    返回 ht_ctn 是7天后的记录
      

  4.   

    select * from table1 where DATEDIFF(day, ht_ctn, getdate()) <7
      

  5.   

    晕,好吧。ht_ctn为开始时间,getdate()为结束时间
      

  6.   

    日期时间型相当于一个浮点数,
    整数部分代表天,小数部分代表时间上面例子相当于
    select * from table1 where DATEDIFF(Day,ht_ctn,getdate())<7
      

  7.   

    问题搞顶谢谢,还有一个问题是两个日期字段中有数据才可以比较,如果是一个为空就不能比较了,所以还要加上一句.and ht_ctn is not null