DATENAME (Transact-SQL)

Изменения: 17 июля 2006 г.

Возвращает строку символов, представляющую указанную часть даты.

ms174395.note(ru-ru,SQL.90).gifВажно!
Эта процедура изменилась по сравнению с более ранними версиями SQL Server. Дополнительные сведения см. в разделе Изменения в работе функций компонента Database Engine в 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
    Выражение, которое возвращает либо значение типа datetime или smalldatetime, либо символьную строку в формате даты. Используйте тип данных datetime для записи дат после 1 января 1753 года. Для более ранних дат используйте символьный тип данных. При вводе значений типа datetime всегда заключайте их в кавычки. Так как тип данных smalldatetime имеет точность до минуты, при использовании значения типа smalldatetime секунды и миллисекунды всегда равны 0. Дополнительные сведения об указании дат см. в разделе Дата и время (Transact-SQL). Дополнительные сведения об определении значений времени см. в разделе Форматы времени.

    Если указаны только две последние цифры года, значения, меньшие или равные двум последним цифрам значения параметра конфигурации two-digit year cutoff, принадлежат тому же веку, что и отсекаемый год. Значения, которые больше двух последних цифр значения этого параметра, принадлежат предыдущему по отношению к отсекаемому году веку. Например, если значение параметра two-digit year cutoff равно 2049 (по умолчанию), то 49 интерпретируется как 2049, а 50 интерпретируется как 1950. Чтобы избежать недоразумений, указывайте год четырьмя цифрами.

Типы возвращаемых данных

nvarchar

Замечания

При необходимости компонент SQL Server 2005 Database Engine автоматически производит преобразование между значениями символьного типа данных и типа данных 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

Журнал изменений

Версия Журнал

17 июля 2006 г.

Новое содержимое
  • Добавлены примеры.

См. также

Справочник

Функции CAST и CONVERT (Transact-SQL)
Типы данных (Transact-SQL)
Функции даты и времени (Transact-SQL)

Другие ресурсы

Формат ISO 8601
Алфавитный формат даты
Числовой формат дат
Формат ODBC Datetime
Форматы времени
Строковый формат без разделителей

Справка и поддержка

Получение помощи по SQL Server 2005