SQL Server:参数中的 DATEADD 值返回错误

SQL Server : DATEADD value in parameters is returning an error

提问人:YelizavetaYR 提问时间:11/15/2022 最后编辑:marc_sYelizavetaYR 更新时间:11/15/2022 访问量:172

问:

我已经构建了一个程序,我需要在过去 60 天内运行它。我似乎想不通。

我有以下参数的日期参数语句,它们返回

select dateadd(Day, -60, getdate()), dateadd(Day, -1, getdate())

enter image description here

代码本身将结束日期调整为一天的最后日期。23:59:59.

当我这样做时

exec LRP_PROC 
         @start_Dt = dateadd(Day, -60, getdate()),
         @end_dt = dateadd(Day, -1, getdate()),
         @mode = 0

我收到以下错误

enter image description here

我不知道我做错了什么。

谢谢。

sql-server 语法错误 exec dateadd

评论


答:

2赞 David Browne - Microsoft 11/15/2022 #1

SQL Server 不允许将任意表达式作为存储过程参数传递。在调用 proc 之前,您需要声明并分配局部变量。

例如

declare @start datetime = dateadd(Day, -60, getdate());
declare @end datetime = dateadd(Day, -1, getdate());

exec LRP_PROC @start_Dt=@start, @end_dt=@end, @mode = 0;