2011-07-27 111 views
1

我試圖調用一個包含上個月的名稱varchar的存儲過程。將選擇日期名稱()結果傳遞給存儲過程

exec my_sp @subject='Report for June 2011'; 

除了June 2011應該是動態的(取決於你調用存儲過程的一個月),不是一成不變的。什麼是實現這一目標的最佳方式?

我能得到前一個月所需的格式,像這樣:

select datename(month, dateadd(month,-1,getdate()))+' '+datename(year, dateadd(month,-1,getdate())) 

,但我不知道如何將它傳遞給存儲過程。

回答

1
 Declare @reportText varchar(40); 
    Set @reportText = datename(month, dateadd(month,-1,getdate()))+' '+datename(year, dateadd(month,-1,getdate())) 

exec my_sp @reportText; 
1
DECLARE @ReportMonth VARCHAR(100) 

SELECT @ReportMonth = 'Report for ' + DATENAME(MONTH, DATEADD(MONTH,-1,GETDATE()))+' '+DATENAME(YEAR, DATEADD(MONTH,-1,GETDATE())) 

EXEC my_sp @[email protected] 
相關問題