SQL: работа с датами и временем

DATE и DATETIME

DATE хранит дату в формате YYYY-MM-DD, например 2026-08-15. DATETIME хранит дату и время в формате YYYY-MM-DD HH:MM:SS, например 2026-08-15 14:30:00.

Сравнение и диапазоны

WHERE registration_date > '2026-03-01'
WHERE registration_date BETWEEN '2026-01-01' AND '2026-05-31'

Для дат работают операторы >, <, >=, <= и =. Границы BETWEEN включаются.

Части даты и времени

YEAR(date)
MONTH(date)
DAY(date)
HOUR(datetime)
MINUTE(datetime)
SECOND(datetime)
DATE(datetime)

Текущие дата и время

CURRENT_DATE
NOW()

Интервалы и разница между датами

DATEDIFF(date1, date2)
DATE_ADD(date, INTERVAL 7 DAY)
DATE_SUB(date, INTERVAL 5 DAY)

DATEDIFF() вычисляет первая дата − вторая дата и возвращает количество дней. В интервалах можно использовать DAY, MONTH, YEAR, HOUR и MINUTE.

Даты вместе с агрегатами и окнами

MIN(created_at)
MAX(created_at)
COUNT(*)
SUM(amount)
LAG(created_at) OVER (
    PARTITION BY user_id
    ORDER BY created_at
)

MIN() находит самый ранний момент, MAX() — самый поздний. LAG() возвращает значение из предыдущей строки внутри группы.

Как выполняются запросы на сайте

Для каждого запуска сайт создаёт отдельную временную базу в памяти, выполняет начальный код и запрос ученика, а затем полностью удаляет базу вместе со всеми таблицами. Учебные функции MySQL из этой статьи поддерживаются режимом совместимости редактора.