DECLARE @GET DATETIME
SET @GET= GETDATE()
DECLARE @Val VARCHAR(10)
SET @Val='wk'
--SELECT DATEADD(@Type,2,@GET)
SELECT DATEPART(wk,GETDATE()) -- WORKING
以上一行有效,但当我把它作为参数传递时,它无法正常工作。
SELECT DATEPART(@val,GETDATE()) -- NOT WORKING
传递的间隔似乎是其他数据类型。
答案 0 :(得分:0)
将其设为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
或者您可以使用此
If @val = 'Week'
SELECT DATEPART(Week,GETDATE())
Else If @val = 'Month'
SELECT DATEPART(Month,GETDATE())
....