DATENAME (Transact-SQL)

更新日期: 2006 年 7 月 17 日

返回表示指定日期的指定日期部分的字符串。

ms174395.note(zh-cn,SQL.90).gif重要提示:
此功能与早期版本的 SQL Server 有所不同。有关详细信息,请参阅 SQL Server 2005 中数据库引擎功能的行为更改

主题链接图标Transact-SQL 语法约定

语法

DATENAME ( datepart ,date )

参数

  • datepart
    是指定要返回的日期部分的参数。下表列出了 Microsoft SQL Server 2005 可识别的日期部分及其缩写。

    日期部分 缩写

    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

    weekday (dw) 日期部分返回星期几(如星期日、星期一等)。

  • date
    表达式,用于返回 datetimesmalldatetime 值,或日期格式的字符串。对 1753 年 1 月 1 日以后的日期使用 datetime 数据类型。对于更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。由于 smalldatetime 只精确到分钟,因此当使用 smalldatetime 值时,秒和毫秒始终为 0。有关如何指定日期的详细信息,请参阅日期和时间 (Transact-SQL)。有关如何指定时间值的详细信息,请参阅时间格式

    如果只指定年份的后两位数字,则小于或等于 two-digit year cutoff 配置选项值的后两位数字的值将与截止年份处于同一世纪中。比此选项值的后两位数字大的值先于截止年份的世纪。例如,如果 two-digit year cutoff 为 2049(默认值),则 49 被解释为 2049,50 被解释为 1950。为避免多义性,请使用四位年份。

返回类型

nvarchar

备注

SQL Server 2005 数据库引擎自动在字符和 datetime 值间按需要进行转换,例如,当将字符值与 datetime 值进行比较时。

示例

以下示例从 GETDATE 返回的日期中提取月份名。

SELECT DATENAME(month, GETDATE()) AS 'Month Name';

下面是结果集:

Month Name

------------------------------

February

以下示例从一个列中提取月份名。

USE AdventureWorks;
GO
SELECT StartDate, DATENAME(month,StartDate) AS StartMonth
FROM Production.WorkOrder
WHERE WorkOrderID = 1;
GO

下面是结果集:

StartDate StartMonth

-------------------------------- ------------

2001-07-04 00:00:00.000 July

以下示例说明了每个 datepart 参数的用法,其中 date 参数的格式为“YYYY-MM-DDTHH:MM:SS.xxx”。

SELECT DATENAME(year,'1995-10-30 12:15:32.123');
SELECT DATENAME(yy,'1995-10-30 12:15:32.123');
SELECT DATENAME(yyyy,'1995-10-30 12:15:32.123');
-- Return: 1995

SELECT DATENAME(quarter,'1995-10-30 12:15:32.123');
SELECT DATENAME(qq,'1995-10-30 12:15:32.123');
SELECT DATENAME(q,'1995-10-30 12:15:32.123');
-- Return: 4

SELECT DATENAME(month,'1995-10-30 12:15:32.123');
SELECT DATENAME(mm,'1995-10-30 12:15:32.123');
SELECT DATENAME(m,'1995-10-30 12:15:32.123');
-- Return: October

SELECT DATENAME(dayofyear,'1995-10-30 12:15:32.123');
SELECT DATENAME(dy,'1995-10-30 12:15:32.123');
SELECT DATENAME(y,'1995-10-30 12:15:32.123');
-- Return: 303

SELECT DATENAME(day,'1995-10-30 12:15:32.123');
SELECT DATENAME(dd,'1995-10-30 12:15:32.123');
SELECT DATENAME(d,'1995-10-30 12:15:32.123');
-- Return: 30

SELECT DATENAME(week,'1995-10-30 12:15:32.123');
SELECT DATENAME(wk,'1995-10-30 12:15:32.123');
SELECT DATENAME(ww,'1995-10-30 12:15:32.123');
-- Return: 44

SELECT DATENAME(weekday,'1995-10-30 12:15:32.123');
SELECT DATENAME(dw,'1995-10-30 12:15:32.123');
-- Return: Monday

SELECT DATENAME(hour,'1995-10-30 12:15:32.123');
SELECT DATENAME(hour,'1995-10-30 12:15:32.123');
SELECT DATENAME(hh,'10/30/1995 12:15:32.123 PM');
SELECT DATENAME(hh,'10/30/1995 12:15:32.123 PM');
-- Return: 12

SELECT DATENAME(minute,'1995-10-30 12:15:32.123');
SELECT DATENAME(mi,'1995-10-30 12:15:32.123');
SELECT DATENAME(n,'1995-10-30 12:15:32.123');
-- Return: 15
 
SELECT DATENAME(second,'1995-10-30 12:15:32.123');
SELECT DATENAME(ss,'1995-10-30 12:15:32.123');
SELECT DATENAME(s,'1995-10-30 12:15:32.123');
-- Return: 32

SELECT DATENAME(millisecond,'1995-10-30 12:15:32.123');
SELECT DATENAME(ms,'1995-10-30 12:15:32.123');
-- Return: 123

更改历史记录

发布日期 历史记录

2006 年 7 月 17 日

新增内容:
  • 添加了示例。

请参阅

参考

CAST 和 CONVERT (Transact-SQL)
数据类型 (Transact-SQL)
日期和时间函数 (Transact-SQL)

其他资源

ISO 8601 格式
字母日期格式
数值日期格式
ODBC 日期时间格式
时间格式
未分隔字符串格式

帮助和信息

获取 SQL Server 2005 帮助