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

时间:2017-12-06 12:23:32

标签: sql sql-server tsql tsqlt

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

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

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

  

'MONTH附近的语法错误,期待(或SELECT'

我是使用参数化方法的新手,并且徘徊为什么这不起作用,以及我如何解决它?感谢

2 个答案:

答案 0 :(得分:3)

试试这个

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

因为您无法直接将函数的结果传递到存储过程的输入中。相反,您必须将函数的结果赋给变量并将该变量传递给sp

答案 1 :(得分:-3)

尝试使用GETDATE()代替GETDATE