我猜这是不可能的,因为引擎不喜欢它,但是有没有办法(禁止动态 SQL)传入 DATEPART
作为过程的参数?
最佳答案
一种选择是使用带有参数的 CASE(最好使用 int 枚举而不是字符串):
declare @part varchar(10)
set @part = 'YEAR'
select case @part
when 'YEAR' then datepart(yy, SomeDateTimeColumn)
when 'MONTH' then datepart(mm, SomeDateTimeColumn)
else datepart(dd, SomeDateTimeColumn)
end
from SomeTable
关于sql - DATEPART 作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943775/