Postgres дата, перекрывающая ограничение

У меня есть такая таблица:

date_start    date_end     account_id    product_id
2001-01-01    2001-01-31   1             1
2001-02-01    2001-02-20   1             1
2001-04-01    2001-05-20   1             1

Я хочу запретить перекрывающиеся интервалы данного(account_id, product_id)

РЕДАКТИРОВАТЬ: Я нашел что-то:

CREATE TABLE test (                                                                                                
    from_ts TIMESTAMPTZ,
    to_ts TIMESTAMPTZ,
    account_id INTEGER,
    product_id INTEGER,
    CHECK ( from_ts < to_ts ),
    CONSTRAINT overlapping_times EXCLUDE USING GIST (
        account_id WITH =,
        product_id WITH =,
        box(
            point( extract(epoch FROM from_ts at time zone 'UTC'), extract(epoch FROM from_ts at time zone 'UTC') ),
            point( extract(epoch FROM to_ts at time zone 'UTC') , extract(epoch FROM to_ts at time zone 'UTC') )
        ) WITH &&
    )
);

Если вы хотите узнать больше об этомhttp://www.depesz.com/2010/01/03/waiting-for-8-5-exclusion-constraints/

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

Ответы на вопрос(4)

Ваш ответ на вопрос