DATENAME (Transact-SQL)
返回表示指定 date 的指定 datepart 的字符串
有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间数据类型及函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。
语法
DATENAME (datepart ,date )
参数
datepart
是返回的 date 的一部分。下表列出了所有有效的 datepart 参数。用户定义的变量等效项是无效的。datepart
缩写
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
weekday
dw
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
TZoffset
tz
date
是一个表达式,可以解析为 time、date、smalldatetime、datetime、datetime2 或 datetimeoffset 值。date 可以是表达式、列表达式、用户定义的变量或字符串文字。为避免不确定性,请使用四位数年份。有关两位数年份的信息,请参阅 two digit year cutoff 选项。
返回类型
nvarchar
返回值
- 每个 datepart 及其缩写都返回相同的值。
 
返回值因使用 SET LANGUAGE 和登录的默认语言设置的语言环境的不同而异。如果 date 是某些格式的字符串文字,则返回值由 SET DATEFORMAT 而定。当日期为日期或时间数据类型的列表达式时,SET DATEFORMAT 不影响返回值。
对于版本高于 SQL Server 2000 的 SQL Server 的版本,当 date 参数具有 date 数据类型参数时,返回值与使用 SET DATEFIRST 指定的设置相关。
TZoffset 日期部分参数
如果 datepart 参数为 TZoffset (tz),并且 date 参数没有时区偏移量,则返回 0。
对不在日期参数中的日期部分返回默认值
如果 date 参数的数据类型没有指定的 datepart,将返回 datepart 的默认值。
例如,任意 date 数据类型的默认年-月-日都为 1900-01-01。下面的语句具有 datepart 的日期部分参数、date 的时间参数,并返回 1900, January, 1, 1, Monday。
SELECT DATENAME(year, '12:10:30.123')
    ,DATENAME(month, '12:10:30.123')
    ,DATENAME(day, '12:10:30.123')
    ,DATENAME(dayofyear, '12:10:30.123')
    ,DATENAME(weekday, '12:10:30.123');
time 数据类型的默认时-分-秒为 00:00:00。下面的语句具有 datepart 的时间部分参数、date 的日期参数,并返回 0, 0, 0。
SELECT DATENAME(hour, '2007-06-01')
    ,DATENAME(minute, '2007-06-01')
    ,DATENAME(second, '2007-06-01');
注释
DATENAME 可用于选择列表 WHERE、HAVING、GROUP BY 和 ORDER BY 子句中。在 SQL Server 2008 中,DATENAME 隐式将字符串文字转换为 datetime2 类型。在将 DATENAME 用于 DATEADD 时,应避免隐式转换字符串文字。有关详细信息,请参阅 DATEADD (Transact-SQL)。
示例
下面的示例返回指定日期的日期部分。
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10')
下面是结果集。
datepart  | 
返回值  | 
|---|---|
year, yyyy, yy  | 
2007  | 
quarter, qq, q  | 
4  | 
month, mm, m  | 
October  | 
dayofyear, dy, y  | 
303  | 
day, dd, d  | 
30  | 
week, wk, ww  | 
44  | 
weekday, dw  | 
Tuesday  | 
hour, hh  | 
12  | 
minute, n  | 
15  | 
second, ss, s  | 
32  | 
millisecond, ms  | 
123  | 
microsecond, mcs  | 
123456  | 
nanosecond, ns  | 
123456700  | 
TZoffset, tz  | 
310  | 
.gif)