提问人:YelizavetaYR 提问时间:11/15/2022 最后编辑:marc_sYelizavetaYR 更新时间:11/15/2022 访问量:172
SQL Server:参数中的 DATEADD 值返回错误
SQL Server : DATEADD value in parameters is returning an error
问:
我已经构建了一个程序,我需要在过去 60 天内运行它。我似乎想不通。
我有以下参数的日期参数语句,它们返回
select dateadd(Day, -60, getdate()), dateadd(Day, -1, getdate())
代码本身将结束日期调整为一天的最后日期。23:59:59.
当我这样做时
exec LRP_PROC
@start_Dt = dateadd(Day, -60, getdate()),
@end_dt = dateadd(Day, -1, getdate()),
@mode = 0
我收到以下错误
我不知道我做错了什么。
谢谢。
答:
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;
评论