Учимся работать с датами в SQL: советы и примеры

В SQL есть несколько функций и операторов, которые позволяют работать с датами:

  • DATE: возвращает дату без времени.
  • TIME: возвращает время без даты.
  • DATETIME: возвращает дату и время.
  • YEAR: возвращает год из даты или времени.
  • MONTH: возвращает месяц из даты или времени.
  • DAY: возвращает день из даты или времени.
  • DATE_FORMAT: форматирует дату или время в заданном формате.
  • DATE_ADD: добавляет интервал к дате или времени.
  • DATE_SUB: вычитает интервал из даты или времени.
  • DATEDIFF: возвращает разность между двумя датами или временами.

Вот несколько примеров использования:

-- Получить текущую дату
SELECT DATE(NOW());
-- Получить текущее время
SELECT TIME(NOW());
-- Получить текущую дату и время
SELECT NOW();
-- Получить год из даты
SELECT YEAR(date_column);
-- Получить месяц из даты
SELECT MONTH(date_column);
-- Получить день из даты
SELECT DAY(date_column);
-- Форматировать дату в заданном формате
SELECT DATE_FORMAT(date_column, '%d.%m.%Y');
-- Добавить 1 день к дате
SELECT DATE_ADD(date_column, INTERVAL 1 DAY);
-- Вычесть 1 день из даты
SELECT DATE_SUB(date_column, INTERVAL 1 DAY);
-- Вычислить разность между двумя датами
SELECT DATEDIFF(date1, date2);

Детальный ответ

SQL – язык структурированных запросов (Structured Query Language), используемый для работы с базами данных. В SQL есть множество возможностей для работы с датами. В этой статье я расскажу о том, какие функции и операторы SQL позволяют работать с датами.

Хранение даты в базе данных

В базе данных дата может быть представлена в разных форматах: текстовом, числовом или специальных типах данных, предназначенных для работы с датами и временем.

Самый часто используемый тип данных для хранения даты и времени – это timestamp. Он позволяет хранить дату и время в сложной структуре, включая год, месяц, день, час, минуту и секунду.

Функции для работы с датами

В SQL есть множество встроенных функций, которые облегчают работу с датами. Рассмотрим некоторые из них:

Операторы сравнения дат

SQL предоставляет операторы сравнения для работы с датами. Вы можете использовать операторы больше (>), меньше (<), больше или равно (>=) и меньше или равно (<=) для сравнения дат.

Пример:

SELECT * FROM orders WHERE order_date > '2022-01-01';

Функции извлечения компонентов даты

SQL предоставляет функции, которые позволяют извлекать компоненты даты, такие как год, месяц, день и т.д.

Пример:

SELECT YEAR(order_date) AS order_year, MONTH(order_date) AS order_month, DAY(order_date) AS order_day FROM orders;

Функции для форматирования даты

SQL предоставляет функции для форматирования даты в нужном формате.

Пример:

SELECT DATE_FORMAT(order_date, '%d.%m.%Y') AS formatted_date FROM orders;

Операторы для работы с датами

В SQL также есть операторы, которые облегчают работу с датами.

Оператор BETWEEN

Оператор BETWEEN используется для выборки данных в заданном диапазоне дат.

Пример:

SELECT * FROM orders WHERE order_date BETWEEN '2022-01-01' AND '2022-01-31';

Операторы DATEADD и DATEDIFF

Оператор DATEADD используется для добавления или вычитания заданного количества времени (дней, месяцев, лет) к дате.

Оператор DATEDIFF используется для вычисления разницы между двумя датами в заданных единицах времени (днях, месяцах, годах).

Пример:

SELECT DATEADD(day, 7, order_date) AS new_date FROM orders;

Примеры работы с датами

Пример 1

Получить все заказы, сделанные после 1 января 2022 года:

SELECT * FROM orders WHERE order_date > '2022-01-01';

Пример 2

Получить количество заказов, сделанных в каждом месяце:

SELECT MONTH(order_date) AS order_month, COUNT(*) AS order_count FROM orders GROUP BY order_month;

Пример 3

Получить заказы, сделанные в период с 1 января 2022 года по 31 января 2022 года:

SELECT * FROM orders WHERE order_date BETWEEN '2022-01-01' AND '2022-01-31';

Пример 4

Получить заказы, сделанные за последние 7 дней:

SELECT * FROM orders WHERE order_date > DATEADD(day, -7, CURRENT_DATE());

Видео по теме

Урок 33. SQL. Работа с датами.

Функции даты и времени в SQL

Язык SQL Часть 3. Работа с датой и временем в MySQL

Похожие статьи:

Как найти дубликаты в таблице SQL: простые способы обнаружения и удаления дубликатов

Как получить список таблиц SQL: простой способ для начинающих

Учимся работать с датами в SQL: советы и примеры