Re: Split daterange into sub periods

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Split daterange into sub periods
Дата
Msg-id 21b62dd6-fd29-b0da-8b0d-89c04685d97e@aklaver.com
обсуждение исходный текст
Ответ на Split daterange into sub periods  (hmidi slim <hmidi.slim2@gmail.com>)
Ответы Re: Split daterange into sub periods
Список pgsql-general
On 07/05/2018 06:49 AM, hmidi slim wrote:
> Hi,
> I'm looking for splitting a daterange into many subperiods following 
> this example:
> 
> Base Date: [2018-01-01, 2018-01-31]
> overlapped_periods:
> 1- [ 2018-01-04, 2018-01-06]
> 2- [ 2018-01-09, 2018-01-12]
> 3- [ 2018-01-18, 2018-01-19]

Overlapping what?
They are not overlapping each other.

> 
> I try to get such a result:
> 1- [ 2018-01-01, 2018-01-03]
> 2- [ 2018-01-07, 2018-01-08]
> 3- [ 2018-01-13, 2018-01-17]
> 4- [ 2018-01-20, 2018-01-31]

Not sure what the above represents.
Are you looking for the dates in the range [2018-01-01, 2018-01-31] that 
are not in the 3 sub-ranges at the top of the post?

> 
> The operator '-' does not support this :
> 
> SELECT daterange('2018-01-01', '2018-01-31', '[]') - 
> daterange('2018-01-04', '2018-01-06', '[]');
> 
> I got this error:
> 
> *ERROR: result of range difference would not be contiguous

That is expected:

https://www.postgresql.org/docs/10/static/functions-range.html

"The union and difference operators will fail if the resulting range 
would need to contain two disjoint sub-ranges, as such a range cannot be 
represented."

> 
> *
> 
> Is there any operators to make the split of daterange?*
> *

Not that I know of.

> 
> 
> 
> 
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com


В списке pgsql-general по дате отправления:

Предыдущее
От: Melvin Davidson
Дата:
Сообщение: Re: Cloning schemas
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Split daterange into sub periods