执行带有日期的存储过程

问题描述

每天我都必须运行执行存储过程的代码。我把昨天的日期硬编码在它之后。

执行 sprm_example '2021-03-10'

我尝试这样做:

执行 sprm_example 'getdate()-1' EXECUTE sprm_example 'cast(getdate()-1 as date)'

这些都不起作用,如果没有引号,它也不起作用。有什么想法吗?

解决方法

SQL Server 不允许在过程调用中使用表达式,但您可以使用变量。所以:

declare @date date;

select @date = dateadd(day,-1,getdate());

EXECUTE sprm_example @date;