Risposte:
Non è possibile passare una chiamata di funzione come argomento alla procedura memorizzata. Utilizza invece una variabile intermedia:
DECLARE @tmp DATETIME
SET @tmp = GETDATE()
EXEC DisplayDate @tmp;
Come ha detto Mitch Wheat, non puoi passare una funzione.
Se nel tuo caso devi passare un valore precalcolato o GETDATE (), puoi usare il valore predefinito. Ad esempio, modifica la procedura memorizzata:
ALTER PROC DisplayDate
(
@DateVar DATETIME = NULL
) AS
BEGIN
set @DateVar=ISNULL(@DateVar,GETDATE())
--the SP stuff here
SELECT @DateVar
END
GO
E poi prova:
EXEC DisplayDate '2013-02-01 00:00:00.000'
EXEC DisplayDate
Nota : qui suppongo che il valore NULL non sia in uso per questo parametro. Se non è il tuo caso, puoi utilizzare un altro valore non utilizzato, ad esempio "1900-01-01 00: 00: 00.000"