我是PostgreSQL的新手,似乎遇到了一个看似简单的问题,我惊讶的是没有人想到在简短的教程中讲清楚。我正在尝试创建一个约束,以确保两个时间戳(带有时区)值之间的持续时间永远不小于1小时。我已经看到了将时间范围与“无穷大”进行比较的示例,但没有将其与实际持续时间(例如“ 1小时”或“ 36分钟”)进行比较的示例。
我想我已经找到了我原来的问题的答案,该问题应该在一年中的大部分时间里都有效,除非为夏时制调整了时钟。看起来像这样:
ADD CONSTRAINT duration_atleast_1hour CHECK((start_datetime-end_datetime)> = '01:00:00':: interval)
我认为tstzrange()能够(根据时区的变化)检测到,即使时钟倒退,时间间隔仍会增加。由于无法直接将其与Interval数据类型进行比较,如何将tstzrange()用于上述约束检查?