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 |