从今年开始选择大于5年前的所有年份

Kar*_*ski 0 sql t-sql sql-server sql-server-2008-r2

 a          b
 1          2009
 2          2007
 3          2006
 4          2010
 5          2011
Run Code Online (Sandbox Code Playgroud)

我将如何从今年开始选择5年以前的所有年份?

So it would be like 2013(year today) - 5 = 2008
 a          b
 1          2009
 4          2010
 5          2011
Run Code Online (Sandbox Code Playgroud)

我试过这个:

select * from table1 where b > CURRENT_TIMESTAMP - 5
Run Code Online (Sandbox Code Playgroud)

我使用smallint作为列b的数据类型而不是日期,因为我只存储年份.使用小型int存储年份是否安全?

Stu*_*rth 7

你很亲密:

select * from table1 where b > YEAR(CURRENT_TIMESTAMP) - 5
Run Code Online (Sandbox Code Playgroud)


Sla*_*tes 6

select * from table1 where b > DATEADD(YEAR,-5,GETDATE())
Run Code Online (Sandbox Code Playgroud)

也应该工作