Определение временных ограничений Postgres (сравнение tzzrange с заданным интервалом) - PullRequest
1 голос
/ 14 апреля 2019

Я очень новичок в PostgreSQL и, кажется, столкнулся с кажущейся простой проблемой. Я удивлен, что никто не подумал изложить это в коротком руководстве. Я пытаюсь создать ограничение, которое гарантирует, что продолжительность между двумя значениями меток времени (с часовым поясом) никогда не будет меньше 1 часа. Я видел примеры, сравнивающие временной диапазон с «бесконечностью», но ни один из которых не сравнивается с фактической временной продолжительностью, например «1 час» или «36 минут».

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

ADD CONSTRAINT duration_atleast_1hour CHECK ((start_datetime - end_datetime)> = '01: 00: 00 ':: interval)

Я думаю, что tstzrange () сможет обнаружить (из изменения часового пояса), что даже когда часы идут назад, временной интервал все еще увеличивается. Как использовать tstzrange () для проверки ограничений выше, поскольку я не могу напрямую сравнить его с типом данных Interval?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...