Создание гибких диапазонов дат в PostgreSQL - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу сделать мой запрос более гибким с датами. Я думаю об определении переменных со ссылкой на текущую дату. в настоящее время я кодирую точную дату за последний квартал, квартал до и квартал один год go.

Это запрос для Q1:

select '2020_Q1' as time_frame, id, status, date, agent, country, sale 
from sales 
where date >= '2020-01-01' and date < '2020-03-31'

Я делаю то же самое для Q4 и Q1 (2019) и объединение в конце. Сегодня 27 апреля, скажем, через 4 месяца и 27 августа. Теперь я хотел бы взглянуть на Q2, Q1 и Q2 (2019). Я считаю, что мне нужно работать с current_date, но дайте мне знать, если вы считаете, что есть более эффективный способ.

1 Ответ

0 голосов
/ 27 апреля 2020

Вы можете использовать date_trunc(), чтобы получить начало «текущего квартала»:

select ...
from sales
where date => date_trunc('quarter', current_date)
  and date < date_trunc('quarter', current_date) + interval '3 months'
...