存储过程:如果传递的参数为空,则分配日期

Stored procedure : assign date if passed parameters are null

当传递的参数为空时,我正在尝试为存储过程赋值。

如果startDate或endDate为null,我想给它们赋值

喜欢

@StartDate = '1990-01-01'
@EndDate = DATEADD(YEARS, 30, GETDATE()) -- 30 years from now.

我该怎么做?

CREATE OR ALTER PROCEDURE dbo.GetByProductID
(
    @ProductID INT,
    @StartDate DATETIME = NULL
    @EndDate DATETIME = NULL
)
AS
    SELECT ProductId, Name, InsertedDate, UpdatedDate
    FROM Products
    WHERE ProductId = @ProductID
      AND InsertedDate > @startDate
      AND UpdatedDate < @EndDate
CREATE OR ALTER PROCEDURE dbo.GetByProductID
(
    @ProductID INT,
    @StartDate DATETIME = NULL
    @EndDate DATETIME = NULL
)
AS
    set @StartDate = coalesce(@StartDate,'1990-01-01')
    set @EndDate = coalesce(@EndDate,DATEADD(YEARS, 30, GETDATE())) -- 30 years from now.

    SELECT ProductId, Name, InsertedDate, UpdatedDate
    FROM Products
    WHERE ProductId = @ProductID
      AND InsertedDate > @startDate
      AND UpdatedDate < @EndDate