1

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

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

select DATEPART(@interval, @date)
4

3 回答 3

3

您可以通过制作如下动态 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)
于 2013-10-18T13:22:41.233 回答
1

没有 - 你不能参数化它。

文档中:

DATEPART ( datepart , date )

日期部分

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

(我的重点

于 2013-10-18T13:02:28.487 回答
0

有很多可用的选项,例如:

day
week
hour
minute
second
millisecond

ETC..

请通过此链接

于 2013-10-18T13:04:54.297 回答