В этом руководстве вы узнаете, как использовать функцию SQL Server DAY() для извлечения дня месяца из указанной даты.
Обзор функции SQL Server DAY()
Функция DAY() возвращает целочисленное значение, представляющее день месяца(1-31) указанной даты.
Ниже показан синтаксис функции DAY():
DAY(input_date)
Функция DAY() принимает один аргумент, который может быть буквальным значением даты или выражением, которое может быть преобразовано в значение TIME, DATE, SMALLDATETIME, DATETIME, DATETIME2 или DATETIMEOFFSET.
Функция DAY() возвращает то же значение, что и следующая функцияDATEPART() :
DATEPART(day,input_date)
Примеры функции SQL Server DAY()
Давайте рассмотрим несколько примеров использования функции ДЕНЬ().
A) Использование функции DAY() с буквальным значением даты
В этом примере функция DAY() используется для извлечения дня из даты «2030-12-01»:
SELECT
DAY('2030-12-01') [DAY];
Вот что получилось:
DAY ----------- 1 (1 row affected)
B) Использование функции DAY() со значением даты, которое содержит только часть времени
Функция DAY() вернет 1, если входная дата содержит только часть времени:
SELECT
DAY('10:20:30') [DAY];
Ниже показан результат:
DAY ----------- 1 (1 row affected)
C) Пример использования функции DAY() со столбцами таблицы
Для демонстрации мы будем использовать sales.orders и sales.order_items из образца базы данных.

В этом примере функция DAY() используется для извлечения данных о днях из значений в столбце shipped_date. Она возвращает валовые продажи по дням в феврале 2017 года с использованием функции SUM() и предложения GROUP BY:
SELECT
DAY(shipped_date) [day],
SUM(list_price * quantity) gross_sales
FROM
sales.orders o
INNER JOIN sales.order_items i ON i.order_id = o.order_id
WHERE
shipped_date IS NOT NULL
AND YEAR(shipped_date) = 2017
AND MONTH(shipped_date) = 2
GROUP BY
DAY(shipped_date)
ORDER BY [day];
На следующем рисунке показан результат:

В этом уроке вы узнали, как извлечь день из указанной даты с помощью функции SQL Server DAY().


