定义Postgres时间范围约束(将tstzrange与设置的时间间隔进行比较)

时间:2019-04-14 00:53:36

标签: postgresql timezone constraints intervals pgadmin-4

我是PostgreSQL的新手,似乎遇到了一个看似简单的问题,我惊讶的是没有人想到在简短的教程中讲清楚。我正在尝试创建一个约束,以确保两个时间戳(带有时区)值之间的持续时间永远不小于1小时。我已经看到了将时间范围与“无穷大”进行比较的示例,但没有将其与实际持续时间(例如“ 1小时”或“ 36分钟”)进行比较的示例。

我想我已经找到了我原来的问题的答案,该问题应该在一年中的大部分时间里都有效,除非为夏时制调整了时钟。看起来像这样:

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

我认为tstzrange()能够(根据时区的变化)检测到,即使时钟倒退,时间间隔仍会增加。由于无法直接将其与Interval数据类型进行比较,如何将tstzrange()用于上述约束检查?

0 个答案:

没有答案