postgresql - DST 转换值的 tsrange 范围错误

标签 postgresql dst range-query

我在 PostgreSQL 中保存 tsrange 类型的值时遇到问题,当时只有一个时间间隔是夏令时并且时间间隔小于 1 小时。

例如我想保存一个45分钟长的时间范围["2013-03-09 01:30:00","2013-03-09 01:15:00"],但是我得到一个error range lower bound must be less than or equal to range upper bound

有没有办法使用 tsrange 类型将这些时间范围保存到 PostgreSQL 中?

最佳答案

输入必须已经“时区化”,然后转换为timestamp without time zone

select tsrange(
    ('2013-02-17 01:30:00'::timestamp at time zone 'BRST')::timestamp,
    ('2013-02-17 01:15:00'::timestamp at time zone 'BRT')::timestamp
);
                    tsrange                    
-----------------------------------------------
 ["2013-02-17 00:30:00","2013-02-17 01:15:00")

关于postgresql - DST 转换值的 tsrange 范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27445459/

相关文章:

postgresql - 对每 N 个值进行分组

sql - 将缺失的信息添加到表中? (考虑随机开始和结束月份)

elasticsearch - 使用 elasticsearch 对字符串进行范围查询

algorithm - 在比线性时间更快的时间内找到满足属性的范围

sql - PostgreSQL - WHERE 条件指的是 2 个不同的记录并且应该是 TRUE

django - 我应该为大型文本文件选择哪个数据库

在夏令时结束时创建 Java 8 ZonedDateTime 实例

PHP UTC 到本地时间

c# - 查找两个时区之间的所有时区偏移周期

java - Lucene 4.10 日期范围查询 API