如何通过将日期减去SQL存储过程来将参数作为日期传递?

时间:2018-05-21 13:34:28

标签: sql date stored-procedures

我有一个存储过程,它带有两个参数,@FromDate@ToDate。但@fromDate应为GetDate()-90。如何传递参数值?

ALTER PROCEDURE spMyProcedure 
    @FromDate DATE,
    @ToDate DATE
AS
BEGIN
    // SQL statements
END

我想这样执行:

EXEC spMyProcedure   @FromDate = GETDATE() - 60, @ToDate = GETDATE()

但它会引发错误。

2 个答案:

答案 0 :(得分:0)

我怀疑你正在使用SQL Server,然后在存储过程中使用dateadd()函数

set @FromDate  = dateadd(day, -90, getdate())

答案 1 :(得分:0)

您无法对传递给存储过程的值执行alter / math / etc.您可以在存储过程上方声明一个日期,然后传递该值,如下所示:

DECLARE @PassDate AS DATETIME
SET @PassDate = GETDATE() - 60

EXEC spMyProcedure @FromDate = @PassDate, @ToDate = GETDATE()