代码之家  ›  专栏  ›  技术社区  ›  Arsee

t-sql-存储过程中的动态参数[重复]

  •  -1
  • Arsee  · 技术社区  · 6 年前

    是否可以在存储过程中使用动态日期参数 CREATE PROCEDURE BEGIN ?

    CREATE PROCEDURE dbo.MYSP 
        @StartDate DATETIME = GETDATE(),
        @EndDate DATETIME = GETDATE() - 1
    BEGIN
    AS
    

    这可能吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ilyes    6 年前

    你不能添加 GETDATE() 存储过程的默认参数。相反,您可以这样做:

    DROP PROCEDURE dbo.MYSP 
    GO
    CREATE PROCEDURE dbo.MYSP 
        @StartDate DATETIME = NULL,
        @EndDate DATETIME = NULL
    AS
    BEGIN
    IF @StartDate IS NULL SET @StartDate=GETDATE()
    IF @EndDate IS NULL SET @EndDate=DATEADD(DAY, -1, GETDATE())
    
    SELECT @StartDate,@EndDate
    
    END
    GO
    dbo.MYSP