Réponses:
Vous ne pouvez pas transmettre un appel de fonction en tant qu'argument à votre procédure stockée. Utilisez plutôt une variable intermédiaire:
DECLARE @tmp DATETIME
SET @tmp = GETDATE()
EXEC DisplayDate @tmp;
Comme Mitch Wheat l'a mentionné, vous ne pouvez pas passer une fonction.
Si dans votre cas vous devez passer une valeur précalculée ou GETDATE () - vous pouvez utiliser la valeur par défaut. Par exemple, modifiez votre procédure stockée:
ALTER PROC DisplayDate
(
@DateVar DATETIME = NULL
) AS
BEGIN
set @DateVar=ISNULL(@DateVar,GETDATE())
--the SP stuff here
SELECT @DateVar
END
GO
Et puis essayez:
EXEC DisplayDate '2013-02-01 00:00:00.000'
EXEC DisplayDate
Remarque : Ici, j'ai supposé que la valeur NULL n'est pas utilisée pour ce paramètre. Si ce n'est pas votre cas, vous pouvez utiliser une autre valeur inutilisée, par exemple '1900-01-01 00: 00: 00.000'