2013-08-20 87 views
0
a   b 
1   2009 
2   2007 
3   2006 
4   2010 
5   2011 

如何從今天年份選擇大於5年前的所有年份?從今天選擇大於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來存儲年份安全嗎?

+0

好吧,讓我們首先把你的最後一個問題:是什麼的'smallint'的最大價值? – 2013-08-20 18:20:48

+0

嘗試這個謂詞:'WHERE b每年(GETDATE()) - 5和年(GETDATE())' –

+0

@JackManey 32,767是一個smallint的最大值 –

回答

6

你接近:

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

應該工作以及