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 № 1Mach 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())
....