我正在尝试使用包含上个月名称的varchar
来调用存储过程。
exec my_sp @subject='Report for June 2011';
除了June 2011
应该是动态的(取决于您调用存储过程的月份),而不是静态的。实现这一目标的最佳方法是什么?
我可以按照所需格式获取前一个月:
select datename(month, dateadd(month,-1,getdate()))+' '+datename(year, dateadd(month,-1,getdate()))
但我不知道如何将它传递给存储过程。
答案 0 :(得分:1)
Declare @reportText varchar(40);
Set @reportText = datename(month, dateadd(month,-1,getdate()))+' '+datename(year, dateadd(month,-1,getdate()))
exec my_sp @reportText;
答案 1 :(得分:1)
DECLARE @ReportMonth VARCHAR(100)
SELECT @ReportMonth = 'Report for ' + DATENAME(MONTH, DATEADD(MONTH,-1,GETDATE()))+' '+DATENAME(YEAR, DATEADD(MONTH,-1,GETDATE()))
EXEC my_sp @subject=@ReportMonth