2016-05-30 104 views
-3

我有一个datetime列,我们需要运行一个查询就可以了回顾两年,SQL日期过滤器自动时间

所以我需要自动完成:

where Appt_DateTime > '20140530' per the current date. 

where Appt_DateTime > CURRENT_TIMESTAMP - 2 YEARS 

后者给出错误消息102,级别15,状态1,行18 “YEARS”附近的语法错误。

+0

请指定使用的SQL风格。没有标准的ANSI SQL函数来做到这一点。但在TSQL中,例如,您可以使用'where Appt_DateTime> DATEADD(year,-2,CURRENT_TIMESTAMP)'。 MySQL,PostgreSQL,Oracle,DB2 ...都有办法做类似的事情,但语法不同。 –

+0

sql server 2008R2 –

+0

然后上面提到的SQL片段应该工作。 –

回答

0

尝试使用DateAdd(YY,-2,GETDATE())

... Where Appt_DateTime >=DateAdd(YY,-2,GetDate()) 

... Where Appt_DateTime >=cast(DateAdd(YY,-2,GetDate()) as date)