Функция SQL Server YEAR

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

Обзор функции SQL Server YEAR()

Функция YEAR() возвращает целочисленное значение, представляющее год указанной даты.

Ниже показан синтаксис функции YEAR():

YEAR(input_date)

Функция принимает аргумент, который может быть буквальным значением даты или выражением, которое может быть преобразовано в значение TIME, DATE, SMALLDATETIME, DATETIME, DATETIME2 или DATETIMEOFFSET.

Функция YEAR() возвращает то же значение, что и следующая функцияDATEPART() :

DATEPART(year,input_date)

Примеры функций SQL Server YEAR()

A) Использование функции YEAR() с буквальным значением даты

В этом примере функция YEAR() используется для извлечения года из даты «2019-02-01»:

SELECT 
 YEAR('2019-02-01') [year];

Вывод:

year
-----------
2019
(1 row affected)

B) Использование функции YEAR() со значением даты, которое содержит только часть времени

Если входное значение даты содержит только данные о времени, функция YEAR() вернет 1900:

SELECT 
 YEAR('11:05:01') [year];

Вот что получилось:

year
-----------
1900
(1 row affected)

C) Пример использования функции YEAR() со столбцами таблицы

Для демонстрации мы будем использовать sales.orders и sales.order_items из образца базы данных.

Образцы таблиц

В этом примере функция YEAR() используется для извлечения данных о годе из значений в столбце shipped_date. Она возвращает валовые продажи по годам с использованием функции SUM() и предложения GROUP BY :

SELECT YEAR(shipped_date) [year], 
    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
GROUP BY YEAR(shipped_date)
order by [year];

Ниже показан результат:

year        gross_sales
----------- -----------
2016        2649649.97
2017        3725890.76
2018        1062469.33
(3 rows affected)

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

Мирослав С.

Автор статей, ИБ-специалист