Как передать параметр как дату, вычитая дни в хранимую процедуру SQL? - PullRequest
0 голосов
/ 21 мая 2018

У меня есть хранимая процедура, которая принимает два параметра, @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 голосов
/ 21 мая 2018

Вы не можете изменить / math / etc для значения, передаваемого хранимой процедуре.Вы можете объявить дату над хранимой процедурой, а затем передать это значение следующим образом:

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

EXEC spMyProcedure @FromDate = @PassDate, @ToDate = GETDATE()
0 голосов
/ 21 мая 2018

Я подозреваю, что вы работаете с SQL Server, если так, то используйте функцию dateadd() внутри хранимой процедуры

set @FromDate  = dateadd(day, -90, getdate())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...