功能DATEPART中的INTERVAL是什么类型的?

时间:2013-10-18 12:58:46

标签: sql-server types datepart

代码select DATEPART(month,getutcdate())返回一个整数,表示当前日期的数字月份值。 值MONTH是interval参数的许多预定义选项之一。 该区间值的基础数据类型是什么?

declare @date datetime = getutcdate()
, @interval notNVarChar(16) = 'month' --what type should this be?  
                                      --Would it need quotes for assignment?

select DATEPART(@interval, @date)

3 个答案:

答案 0 :(得分:2)

您可以通过制作动态SQL进行参数化,如下所示:

declare @date datetime
set @date = GETDATE()
declare @option varchar(50)
declare @sql varchar(max)
SET @option = 'MONTH' --Here you can set other options like hour, second, milisecond etc..

set @sql = 'SELECT DATEPART('+ @option + ',''' + CONVERT(varchar,@date,21)+''')'


print @sql
EXEC( @sql)

答案 1 :(得分:0)

没有 - 你无法参数化。

来自documentation

DATEPART ( datepart , date )
  

datepart

     

是将返回整数的日期部分(日期或时间值)。下表列出了所有有效的datepart参数。 用户定义的变量等效项无效。

(我的强调

答案 2 :(得分:0)

有很多选项可供选择:

day
week
hour
minute
second
millisecond

等。

请通过此LINK