SELECT EXTRACT(DOW FROM created_at) AS weekday,
COUNT(*) AS orders
FROM orders
GROUP BY 1
ORDER BY 1;
Результат:
weekday | orders 0 | 210 1 | 340 6 | 180
SELECT *
FROM orders
WHERE EXTRACT(QUARTER FROM created_at) = 4;
Результат:
order_id | created_at 88 | 2026-10-05 91 | 2026-12-20Порешать SQL-задачи в тренажёре →
EXTRACT спрашивают в задачах на сезонность и фильтры по календарю: «заказы по дням недели», «активность по часам». Умей объяснить разницу с date_trunc: EXTRACT — для числового признака/фильтра, date_trunc — для группировки в ряд.
EXTRACT(DOW FROM дата) вернёт 0–6, где 0 — воскресенье. Если нужен ISO-формат (1 — понедельник, 7 — воскресенье), используй EXTRACT(ISODOW FROM дата).
В PostgreSQL они почти эквивалентны: EXTRACT(field FROM date) и DATE_PART('field', date) возвращают одно и то же число. EXTRACT — стандарт ANSI, DATE_PART — синтаксис PostgreSQL.
Нет, в SQLite используют strftime с форматными кодами: %Y — год, %m — месяц, %w — день недели, %H — час.
LAG · date_trunc · strftime · TO_CHAR · AGE · CURRENT_DATE
Открыть SQL-тренажёр (565 задач) →