/ / Der als Parameter übergebene Wert funktioniert in SQL-Server nicht für integrierte Funktionen von Datetime - SQL, SQL-Server-2008

Der als Parameter übergebene Wert funktioniert in SQL-Server nicht für integrierte Funktionen von Datetime - SQL, SQL-Server-2008

DECLARE @GET DATETIME
SET @GET= GETDATE()
DECLARE @Val VARCHAR(10)
SET @Val="wk"

--SELECT DATEADD(@Type,2,@GET)

SELECT DATEPART(wk,GETDATE())  -- WORKING

Die obige Zeile funktioniert, aber wenn ich sie als Parameter übergeben habe, funktioniert sie nicht.

 SELECT DATEPART(@val,GETDATE())  -- NOT WORKING

Das durchlaufene Intervall scheint einen anderen Datentyp zu haben.

Antworten:

0 für die Antwort № 1

Mach es so Dynamic Query

DECLARE @sql nvarchar(500)

DECLARE @Val VARCHAR(10)

SET @Val="week"  --Quarter, Month

set @sql = "SELECT DATEPART("+@val+",GETDATE())"

exec sp_executesql @sql

Oder alternativ können Sie dies verwenden

If @val = "Week"
SELECT DATEPART(Week,GETDATE())
Else If @val = "Month"
SELECT DATEPART(Month,GETDATE())
....