2
 a          b
 1          2009
 2          2007
 3          2006
 4          2010
 5          2011

从今天开始,我将如何选择大于 5 年前的所有年份?

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

我试过这个:

select * from table1 where b > CURRENT_TIMESTAMP - 5

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

4

2 回答 2

9
select * from table1 where b > DATEADD(YEAR,-5,GETDATE())

应该也可以

于 2013-08-20T18:28:01.567 回答
7

你很接近:

select * from table1 where b > YEAR(CURRENT_TIMESTAMP) - 5
于 2013-08-20T18:22:40.117 回答