DATENAME (Transact-SQL)
Возвращает символьную строку, представляющую указанный компонент datepart указанной date.
Обзор всех типов данных и функций даты и времени в языке 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 выше SQL Server 2000, если параметр date имеет аргумент типа date, то возвращаемое значение зависит от настроек, заданных с помощью функции SET DATEFIRST.
Аргумент TZoffset функции datepart
Если в качестве аргумента datepart выступает переменная TZoffset (tz), а параметр date не содержит смещения часового пояса, возвращается значение 0.
Аргумент даты типа smalldatetime
Если аргумент date имеет тип smalldatetime, для секунд возвращается значение 00.
Возвращается значение по умолчанию для аргумента функции datepart, который отличен от даты
Если тип данных аргумента 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 больше не поддерживает формат «гдм», где дата передается в качестве строки. Необходимо явно привести строку в тип datetime или smalldatetime для использования формата «гдм».
Примеры
В следующем примере производится отображение частей указанной даты.
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10')
Ниже приводится результирующий набор.
datepart |
Возвращаемое значение |
---|---|
year, yyyy, yy |
2007 |
quarter, qq, q |
4 |
month, mm, m |
Октябрь |
dayofyear, dy, y |
303 |
day, dd, d |
30 |
week, wk, ww |
44 |
weekday, dw |
Вторник |
hour, hh |
12 |
minute, n |
15 |
second, ss, s |
32 |
millisecond, ms |
123 |
microsecond, mcs |
123456 |
nanosecond, ns |
123456700 |
TZoffset, tz |
310 |