Для сравнения период-к-периоду нужно получить начало прошлого календарного месяца. Какое выражение вернёт начало прошлого месяца?
A
DATE_TRUNC('day', current_date) - INTERVAL '1 month'B
DATE_TRUNC('month', current_date) - INTERVAL '30 days'C
current_date - INTERVAL '1 month'D
DATE_TRUNC('month', current_date) - INTERVAL '1 month'Правильный ответ. Чтобы получить границу календарного периода, сначала используйте
DATE_TRUNC, затем сдвигайте через INTERVAL.Разбор
Чтобы взять ровно прошлый календарный месяц, сначала найдите начало текущего месяца DATE_TRUNC('month', current_date), затем сдвиньте границу на месяц назад: - INTERVAL '1 month'. Вариант с - INTERVAL '30 days' может дать неверную границу, потому что длина месяцев разная.
Проверь себя · 1/3разбор после ответа
Колонка
created_at типа timestamptz. Таймзона сессии (TimeZone) может отличаться между задачами. Как гарантированно сгруппировать события по UTC-дням?Ещё вопросы по теме «Даты и время»
- В таблице `events(user_id, created_at)` поле `created_at` типа `timestamp`. Как посчитать количество событий по дням?
- Есть таблица `orders(created_at, amount)`, где `created_at` типа `timestamp`. Как посчитать выручку по месяцам?
- В таблице `events(created_at)` нужно выбрать события за последние 7 дней относительно текущего момента (`current_timestamp`). Какое условие в `WHERE` корректнее?
- Как получить начало текущей недели (недельный бакет) по текущей дате в PostgreSQL?
- Колонка `created_at` имеет тип `timestamp`. Какой тип данных вернёт `DATE_TRUNC('day', created_at)`?
- Все вопросы по «Даты и время» →