могут быть пропущены:
2021-02-01
2021-02-02
2021-02-03
2021-02-06
2021-02-07
Мне нужно получить список неразрывных интервалов:
2021-02-01 - 2021-02-03
2021-02-06 - 2021-02-07
Как это можно реализовать?
"список неразрывных интервалов" - можно подробней ?
А я привёл же пример. С 1 по 3 февраля даты идут последовательно, а после 3 февраля сразу 6, значит уже новый интервал начинается
Подобный тип задач называется "gaps and islands", и "стандартных" решений более чем хватает. К примеру, поищите тут https://dba.stackexchange.com/questions/tagged/gaps-and-islands , ну или просто в любом поисковике по этой фразе.
SELECT d::date FROM generate_series( '2021-02-01'::timestamp without time zone, '2021-02-10'::timestamp without time zone, '1 day' ) AS gs(d) WHERE NOT daterange( '2021-02-04', '2021-02-06', '[]' ) @> d:📅 Вот из этого я хочу получить daterange( '2021-02-01', '2021-02-03' ) и daterange( '2021-02-07', '2021-02-10' )
Сейчас прогуглю, спасибо
Обсуждают сегодня