2011-07-27 69 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] 
相关问题