Incorrect syntax near ')' calling stored procedure with GETDATE

前端 未结 2 1041
误落风尘
误落风尘 2020-11-29 06:59

Maybe I am having a moment of \'afternoon\', but can anyone explain why I get

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near \')\'.

相关标签:
2条回答
  • 2020-11-29 07:35

    As Mitch Wheat mentioned you can't pass a function.

    If in your case you should pass in a precalculated value or GETDATE() - you can use default value. For example, modify your stored procedure:

    ALTER PROC DisplayDate 
    (
        @DateVar DATETIME = NULL
    ) AS 
    BEGIN
        set @DateVar=ISNULL(@DateVar,GETDATE())
    
        --the SP stuff here
        SELECT @DateVar
    END
    GO
    

    And then try:

    EXEC DisplayDate '2013-02-01 00:00:00.000'
    EXEC DisplayDate
    

    Remark: Here I supposed that NULL value is not in use for this parameter. If it is not your case - you can use another unused value, for example '1900-01-01 00:00:00.000'

    0 讨论(0)
  • 2020-11-29 07:41

    You can't pass in a function call as an argument to your stored procedure. Instead use an intermediate variable:

    DECLARE @tmp DATETIME
    SET @tmp = GETDATE()
    
    EXEC DisplayDate @tmp;
    
    0 讨论(0)
提交回复
热议问题