')'用GETDATE调用storedproc时语法不正确
也许我有一个'下午'的时刻,但任何人都可以解释为什么我得到
'102',等级15,状态1,行2在')'附近语法不正确。
运行时
CREATE PROC DisplayDate ( @DateVar DATETIME ) AS BEGIN SELECT @DateVar END GO EXEC DisplayDate GETDATE();
您不能将函数调用作为parameter passing给您的存储过程。 而是使用一个中间variables:
DECLARE @tmp DATETIME SET @tmp = GETDATE() EXEC DisplayDate @tmp;
正如米奇小麦提到你不能通过一个函数。
如果在你的情况下,你应该传递一个预先计算的值或GETDATE() – 你可以使用默认值。 例如,修改您的存储过程:
ALTER PROC DisplayDate ( @DateVar DATETIME = NULL ) AS BEGIN set @DateVar=ISNULL(@DateVar,GETDATE()) --the SP stuff here SELECT @DateVar END GO
然后尝试:
EXEC DisplayDate '2013-02-01 00:00:00.000' EXEC DisplayDate
备注 :这里我假设这个参数没有使用NULL值。 如果不是您的情况 – 您可以使用另一个未使用的值,例如“1900-01-01 00:00:00.000”