代码之家  ›  专栏  ›  技术社区  ›  George2

SQL日期时间类型问题

  •  0
  • George2  · 技术社区  · 16 年前

    我使用的是SQL Server 2008 Enterprise。我有一个名为Foo的表,它有一个名为MyTime的DateTime类型列。我要查找MyTime列值已超过3天(从当前时间开始)的所有记录(行)。如何实施?

    提前谢谢, 乔治

    5 回复  |  直到 16 年前
        1
  •  3
  •   HCL    16 年前
    WHERE myTime < DATEADD(dd,-3,getDate())
    
        2
  •  3
  •   veljkoz Danko Valkov    16 年前

    DECLARE @DateExpired DATETIME
    SET @DateExpired = GETDATE() - 3
    SELECT * 
    FROM Foo
    WHERE MyTime < @DateExpired
    
        3
  •  1
  •   Christian Wattengård    16 年前

    datediff(d,GetDate(),MyTime)>3

    select * from table
      where datediff(d,GetDate(),MyTime) > 3
    

    编辑:这是另一种方式:P

        4
  •  1
  •   halfdan    16 年前

    你可以用 DATEADD (datepart,number,date)进行计算:

    SELECT * FROM Foo WHERE MyTime > DATEADD(dd, -3, MyTime)
    
        5
  •  1
  •   codingbadger    16 年前
    create table #foo
    (
    MyTime dateTime
    )
    
    Insert Into #foo
    Values ('2010-09-15')
    Insert Into #foo
    Values ('2010-09-14')
    Insert Into #foo
    Values ('2010-09-13') 
    Insert Into #foo
    Values ('2010-09-12')
    
    
    Select * FRom #foo
    Where DateAdd(day, 3, MyTime) <= '2010-09-16'
    
    drop table #foo
    
    推荐文章