DATENAME (Transact-SQL)

返回表示指定 date 的指定 datepart 的字符串

有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间函数 (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。

smalldatetime 日期参数

当 date 为 smalldatetime 时,秒的返回值为 00。

对不在日期参数中的日期部分返回默认值

如果 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 R2 中,DATENAME 将字符串文字作为 datetime2 类型隐式转换。这就意味着,日期在作为字符串传递时,DATEDIFF 不再支持 YDM 格式。您必须先将字符串显式转换为 datetime 或 smalldatetime 类型,然后才能使用 YDM 格式。

示例

下面的示例返回指定日期的日期部分。

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