2010-09-08 61 views
0

首先,我需要創建一個sproc,它會給我一個從今年到今年之前的5年的列表。我想用某種方式使用表變量?SQL從今年到今年的5年的列表,然後用作存儲過程中的參數

之後,我需要使用該值作爲另一個sproc中的參數。那麼我怎麼會說出顯示包含所選年份的所有日期?我知道如何編寫參數以及我只需要Where子句部分的所有內容。

列的日期都是這樣2010/01/30 00:00.000一個

回答

3

部分:

Declare @Years Table (int year primary Key Not Null) 
Declare @Yr integer Set @Yr = Year(getDate()) 
Declare @tYr Integer Set @tYr = @Yr 
while @Yr > @TYr - 5 Begin 
    Insert @Years(year) Values (@Yr) 
    Set @Yr = @Yr - 1 
End 

兩部分:(我假設你的意思是「包含了一年顯示所有日期在五年跨越」?)

Where Year(dateColumn) In (Select year from @Years) 

- 但這不是優化搜索,所以我反而reccomend,

Where dateColumn Between DateAdd(year, Year(getDate())-1905, 0) 
        And DateAdd(year, Year(getDate())-1899, 0)