我可以将 DATEADD 直接传递给变量吗?

Can I pass DATEADD straight into a variable?

在我正在编写的一个 tSQLt 测试中,我调用了一个带有参数的方法来填充预期的 table,如下所示:

EXEC Test.Insert_Expected
    @CommencementDt = DATEADD(MONTH, 1, GETDATE)

但是我在第二行的 MONTH 部分收到错误消息:

'Incorrect syntax near MONTH, expecting ( or SELECT'

我刚开始使用参数化方法,一直在想为什么这不起作用,我该如何解决?谢谢

尝试使用 GETDATE() 而不是 GETDATE

试试这个

DECLARE @CommencementDt datetime = DATEADD(MONTH, 1, GETDATE())
EXEC Test.Insert_Expected @CommencementDt

因为您不能将函数的结果直接传递到存储过程的输入中。相反,您必须将函数的结果分配给一个变量并将该变量传递给 sp