Відповіді:
Ви не можете передавати виклик функції як аргумент збереженій процедурі. Замість цього використовуйте проміжну змінну:
DECLARE @tmp DATETIME
SET @tmp = GETDATE()
EXEC DisplayDate @tmp;
Як згадував Мітч Пшеничний, ви не можете передати функцію.
Якщо у вашому випадку вам слід вказати попередньо обчислене значення або GETDATE () - ви можете використовувати значення за замовчуванням. Наприклад, змініть збережену процедуру:
ALTER PROC DisplayDate
(
@DateVar DATETIME = NULL
) AS
BEGIN
set @DateVar=ISNULL(@DateVar,GETDATE())
--the SP stuff here
SELECT @DateVar
END
GO
А потім спробуйте:
EXEC DisplayDate '2013-02-01 00:00:00.000'
EXEC DisplayDate
Зауваження : Тут я припустив, що значення NULL не використовується для цього параметра. Якщо це не так - ви можете використовувати інше невикористане значення, наприклад "1900-01-01 00: 00: 00.000"