【发布时间】:2020-05-05 15:00:20
【问题描述】:
我想在使用 DATEADD 函数时将来自变量/来自表列的数据作为“日期部分”传递。下面是我的代码的 sn-p,我看到如下错误。
DECLARE @vchstring VARCHAR(20)
SET @vchstring='month'
SELECT DATEADD(@vchstring,1,GETDATE())
我收到此错误:
消息 1023,第 15 级,状态 1,第 104 行
为 dateadd 指定的参数 1 无效。
这可能是重复的,但我找不到任何信息。
【问题讨论】:
-
你不能那样做。您需要动态 sql,或者您需要添加一些 IF/ELSE 语句或检查
vchstring值的 Case 语句。 -
令人讨厌的是他们不允许参数化该参数
-
是的,令人讨厌的是,我们无法在 DATEADD 函数中参数化日期部分。我将创建一个带有 if/else 条件的静态函数
标签: sql-server tsql azure-sql-database