Для сравнения период-к-периоду нужно получить начало прошлого календарного месяца. Какое выражение вернёт начало прошлого месяца?

ADATE_TRUNC('day', current_date) - INTERVAL '1 month'
BDATE_TRUNC('month', current_date) - INTERVAL '30 days'
Ccurrent_date - INTERVAL '1 month'
DDATE_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-дням?
Тренировать SQL в Telegram

Ещё вопросы по теме «Даты и время»