如何在存储过程中设置默认日期时间参数?

Jos*_*ose 4 sybase stored-procedures default-parameters

我在 Sybase 中声明了一个存储过程,其中一个参数是 datetime 类型。现在我想为这个日期时间分配一个默认值。

这是声明:

create procedure Procedure 
(
    @fromDate datetime = getdate()
)
...
Run Code Online (Sandbox Code Playgroud)

但是 Sybase 给了我一个错误

Number (102) Severity (15) State (1) Server (SERVER) Procedure (Procedure) Incorrect syntax near '('.
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点?如果没有,是否有解决方法?

Raw*_*ser 6

您不能在默认变量赋值中使用函数调用(如您所见)。

将默认值设置为 Null,并在存储过程中首先进行赋值。

  create procedure Procedure 
  (
      @fromDate datetime = NULL
  )
  begin

      set @fromDate = coalesce( @fromDate , getdate() ) 

  end 
Run Code Online (Sandbox Code Playgroud)