В этом руководстве вы узнаете, как использовать функцию SQL Server DATEPART() для извлечения части даты.
Обзор функции SQL Server DATEPART()
Функция DATEPART() возвращает целое число, являющееся частью даты, например дня, месяца или года.
Вот синтаксис функции DATEPART():
DATEPART( date_part , input_date )
Функция DATEPART() принимает два аргумента:
- date_part — часть даты, которую необходимо извлечь.(См. допустимые части даты в таблице ниже).
- input_date — дата, из которой извлекается часть даты.
дата_часть | аббревиатуры |
---|---|
год | гг, гггг |
четверть | кк, к |
месяц | М-м-м |
деньгода | ды, у |
день | дд, д |
неделя | неделя, неделя |
будний день | дв |
час | чч |
минута | ми, н |
второй | сс, с |
миллисекунда | РС |
микросекунда | мкс |
наносекунда | нс |
TZoffset | тз |
ISO_НЕДЕЛЯ | isowk, isoww |
Примеры SQL Server DATEPART()
Давайте рассмотрим несколько примеров использования функции DATEPART().
1) Использование функции DATEPART() с переменными
В этом примере функция DATEPART() используется для извлечения различных частей значения даты, хранящегося в переменной :
DECLARE @d DATETIME = '2019-01-01 14:30:14'; SELECT DATEPART(year, @d) year, DATEPART(quarter, @d) quarter, DATEPART(month, @d) month, DATEPART(day, @d) day, DATEPART(hour, @d) hour, DATEPART(minute, @d) minute, DATEPART(second, @d) second;
Вот что получилось:
2) Пример использования функции DATEPART() со столбцами таблицы
Для демонстрации мы будем использовать sales.orders и sales.order_items из образца базы данных.
В следующем примере функция DATEPART() используется для запроса валовых продаж по году, кварталу, месяцу и дню.
SELECT DATEPART(year, shipped_date) [year], DATEPART(quarter, shipped_date) [quarter], DATEPART(month, shipped_date) [month], DATEPART(day, shipped_date) [day], SUM(quantity * list_price) 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 DATEPART(year, shipped_date), DATEPART(quarter, shipped_date), DATEPART(month, shipped_date), DATEPART(day, shipped_date) ORDER BY [year] DESC, [quarter], [month], [day];
Вот частичный вывод:
В этом примере мы использовали функцию DATEPART() для извлечения года, квартала, месяца и дня из значений в столбце shipped_date. В предложении GROUP BY мы агрегировали валовые продажи(quantity * list_price) по этим частям даты.
Обратите внимание, что функцию DATEPART() можно использовать в предложениях SELECT, WHERE, HAVING, GROUP BY и ORDER BY.
Краткое содержание
- Используйте функцию SQL Server DATEPART() для извлечения части даты из даты.