Я работаю над приложением, которое будет получать отчет между определенными диапазонами дат. Существует возможность выбора нескольких вариантов выбора даты. Обычно у нас есть выбор частоты как ежемесячно, ежеквартально и ежегодно. Поэтому любое количество диапазонов дат (по любому типу частот) может быть выбрано без каких-либо перекрывающихся периодов. Теперь в отчете мне нужно показать диапазон дат выбора в единицах месяца, используя Postgresql. Это возможно?DateRange in Postgresql
например Пример запроса:
select dt, description
from table1
where (
dt between '2005-12-26' and '2006-03-26'
or dt between '2006-03-27' and '2006-06-25'
or dt between '2006-06-26' and '2006-12-31'
or dt between '2007-12-31' and '2008-12-28'
)
group by dt, description
order by dt, description
Здесь
- Дата была выбрана путем выбора ежемесячной частоты (январь-март)
- Дата была выбрана путем выбора квартального частоты (Q2 2006)
- Дата выбрана путем выбора Квартальной частоты (Q3 и Q4 за 2006 год)
- Дата была избираются путем выбора Ежегодных частот (2008)
Так что теперь мой отчет должен выглядеть
Date DateRange Description
2006-01-01 January2006-March2006 XXXXXXXXXXX
2006-08-31 July2006-Dec2006 UUUUUUUUUUU
2008-05-20 January2008-dec2008 ZZZZZZZZZZ
Учитывая, что ваши месяцы и годы определяются иначе, чем то, что говорит календарь, таблица «calendar» принесет вам огромную пользу. PK будет дата, а в других полях укажите год, месяц и т. Д. В соответствии с вашими бизнес-правилами. –