sql первый день квартала
DATEPART (Transact-SQL)
Эта функция возвращает целое число, представляющее указанную часть datepart заданного типа date.
Обзор всех типов данных и функций даты и времени в языке Transact-SQL см. в статье Типы данных и функции даты и времени (Transact-SQL).
Синтаксические обозначения в Transact-SQL
Синтаксис
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
datepart
Определенная часть аргумента date, для которого функция DATEPART вернет значение типа integer. В приведенной ниже таблице перечислены все допустимые аргументы datepart.
DATEPART не принимает эквивалентные переменные, определяемые пользователем, для аргументов 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 |
iso_week | isowk, isoww |
date
Выражение, которое разрешается в один из следующих типов данных:
Для date DATEPART будет принимать столбец выражения, выражение, строковый литерал или определяемую пользователем переменную. Во избежание неоднозначности используйте четырехзначную запись года. Сведения о двузначном обозначении года см. в статье Настройка параметра конфигурации сервера two digit year cutoff.
Тип возвращаемых данных
Возвращаемое значение
Каждое выражение datepart и его краткие формы возвращают одно и то же значение.
Возвращаемое значение зависит от языка среды, задаваемого инструкцией SET LANGUAGE, и от параметра конфигурации сервера «язык по умолчанию» для имени входа. Если значение date является строковым литералом некоторого формата, то возвращаемое значение зависит от функции SET DATEFORMAT. Инструкция SET DATEFORMAT не изменяет возвращаемое значение, если дата представляется выражением столбца типа данных даты или времени.
.123456700
datepart | Возвращаемое значение |
---|---|
year, yyyy, yy | 2007 г. |
quarter, qq, q | 4 |
month, mm, m | 10 |
dayofyear, dy, y | 303 |
day, dd, d | 30 |
week, wk, ww | 44 |
weekday, dw | 3 |
hour, hh | 12 |
minute, n | 15 |
second, ss, s | 32 |
millisecond, ms | 123 |
microsecond, mcs | 123456 |
nanosecond, ns | 123456700 |
tzoffset, tz | 310 |
iso_week, isowk, isoww | 44 |
Аргументы функции datepart, содержащие информацию о номере недели и дня
Для week (wk, ww) или weekday (dw) datepart возвращаемое значение DATEPART зависит от значения, заданного функцией SET DATEFIRST.
1 января любого года определяет начальное число для компонента даты week datepart. Пример:
DATEPART (wk, ‘Jan 1, xxx x’) = 1,
где xxxx — любой год.
В этой таблице представлены возвращаемые значения параметров week и weekday datepart для даты 21.04.2007 с каждым аргументом функции SET DATEFIRST. 1 января 2007 г. приходится на понедельник. 21 апреля 2007 г. приходится на субботу. Для региональных настроек «Английский (США)»
SET DATEFIRST 7 (воскресенье). После задания DATEFIRST используйте предлагаемую инструкцию SQL для табличных значений datepart:
SELECT DATEPART(week, ‘2007-04-21 ‘), DATEPART(weekday, ‘2007-04-21 ‘)
возвращаемое
Аргументы функции datepart, отображающие год, месяц и день даты
Значения, возвращаемые в результате выполнения инструкций DATEPART (year, date), DATEPART (month, date) и DATEPART (day, date), совпадают с результатами выполнения функций YEAR, MONTH и DAY, соответственно.
iso_week datepart
Стандарт ISO 8601 включает в себя систему отсчета дней и недель ISO. Каждая неделя приписывается тому году, в котором находится ее четверг. Например, первая неделя 2004 г. (2004W01) считается с понедельника 29 декабря 2003 г. по воскресенье 4 января 2004 г. Этот стиль нумерации обычно используется в странах и регионах Европы. В других странах он применяется редко.
Примечание. Наибольшее число недель в году может составлять 52 или 53.
Система отсчета недель в разных странах и регионах может не совпадать со стандартом ISO. В таблице ниже представлено шесть возможных вариантов.
Первый день недели | Содержание первой недели года | Двойное присвоение недель | Применяется в: |
---|---|---|---|
Воскресенье | 1 января, 1–7 дней года | Да | США |
Понедельник | 1 января, 1–7 дней года | Да | Большинство стран Европы, а также Великобритания |
Понедельник | 4 января, 4–7 дней года | нет | ISO 8601, Норвегия и Швеция |
Понедельник | 7 января, 7 дней года | нет | |
Среда | 1 января, 1–7 дней года | Да | |
Суббота | 1 января,tzoffsetDATEPART возвращает значение tzoffset (tz) как количество минут (со знаком). В результате выполнения этой инструкции возвращается смещение часового пояса 310 минут: Функция DATEPART отображает значение tzoffset описанным ниже образом. Аргумент даты типа smalldatetimeДля значения date типа smalldatetime функция DATEPART возвращает количество секунд 00. Возвращается значение по умолчанию для аргумента функции datepart, который отличен от датыЕсли тип данных аргумента date не содержит указанной части datepart, функция DATEPART вернет значение по умолчанию для этой части datepart, только если для date указан литерал. Если аргумент date указан как переменная или столбец таблицы и тип данных этой переменной или столбца не содержит указанной части datepart, функция DATEPART возвращает ошибку 9810. В этом примере переменная @t имеет тип данных time. Этот пример завершается ошибкой, потому что год даты не является допустимым для типа данных time: Доли секундыЭти инструкции демонстрируют, что функция DATEPART возвращает доли секунды: RemarksФункция DATEPART может использоваться в предложениях выбора из списка, WHERE, HAVING, GROUP BY и ORDER BY. В SQL Server 2019 (15.x) функция DATEPART неявно приводит строковые литералы к типу datetime2. Это означает, что DATENAME не поддерживает формат ГЧМ (год, число, месяц) при передаче даты в виде строки. Для использования формата ГЧМ (год, число, месяц) необходимо явно привести строку к типу datetime или smalldatetime. ПримерыВ этом примере возвращается базовый год. Его значение используется при расчетах, связанных с датами. В примере дата указана как число. Обратите внимание на то, что SQL Server интерпретирует 0 как 1 января 1900 г.
|