声明可以在DATENAME()函数中使用的datepart参数

时间:2018-02-26 16:13:12

标签: sql-server date tsql

有可能吗?我尝试了很多不同类型的变量,但它们都不适合,我需要它,因为我有多个案例,如果我可以为所有这些编写一个,那将会很酷......就像DATENAME(@ Someparameter,GETDATE( )) 和参数将是什么类型?

DECLARE @Someparameterdate ???????;
SET @Someparameter= CASE @SortOrder 
WHEN '1' THEN DATENAME(WEEKDAY,GETDATE())
WHEN '2' THEN DATENAME(MONTH,GETDATE())
WHEN '3' THEN DATENAME(YEAR,GETDATE())

1 个答案:

答案 0 :(得分:2)

除非你使用动态SQL,否则这是不可能的 来自Microsoft Docs DATENAME页面:

  

参数   DATEPART   是返回日期的一部分。下表列出了所有有效的datepart参数。 用户定义的变量等效项无效。

(强调我的。)

涉及datepart参数的所有日期/日期时间函数也是如此 - 它必须是硬编码的。