Недавно мне понадобилось выбрать данные из большой таблицы за последний месяц. Мои поиски того, как это сделать проще всего, привели меня к знакомству с типом данных в PostgreSQL, который я до этого не знал (хотя и догадывался о его существовании) — interval (документация). Предыдущий подход с использованием конкретной даты Раньше я указывал какую-то конкретную дату в запросе, например: SELECT
*
FROM
book
WHERE
completed_at > '09/18/2022 00:00:00' То есть мне приходилось высчитывать примерную дату, которая была раньше на один месяц (или любой другой нужный мне интервал), а затем строить свой запрос использую жёстко указанную дату. Новый подход с использованием interval SELECT
*
FROM
book
WHERE
completed_at > now() - interval '30 day' Код now() - interval '30 day' автоматически высчитывает дату в прошлом, которая раньше текущей даты на указанный промежуток времени (в этом примере — 30 дней). Так же с interval можно использовать и другие единицы измерения времени: