Bra*_*rad 13 sql t-sql sql-server stored-procedures sql-server-2008
我猜这是不可能的,因为引擎不喜欢它,但有没有办法(禁止动态SQL)DATEPART作为参数传递给一个过程?
小智 12
一种选择是使用带参数的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
| 归档时间: | 
 | 
| 查看次数: | 11717 次 | 
| 最近记录: |