【发布时间】:2016-06-21 20:15:07
【问题描述】:
我为这篇文章创建了一个 sql fiddle:http://sqlfiddle.com/#!15/7b5d7/1/0
问题 #1
为什么插入具有独占边界的daterange 的记录实际上存储了具有包含下限和独占上限的范围?为什么 pg 不将它们都存储为包含边界?
问题 #2
SELECT upper('[2016-06-19, 2016-06-21)'::daterange) 返回2016-06-21。请注意,[ 表示包含的下限,) 表示独占的上限。
不应该选择上限返回2016-06-20吗?日期没有离散间隔吗?
【问题讨论】:
-
就是这样实现的。 From the manual: "内置范围类型 int4range、int8range 和 daterange 均使用包含下限但不包括上限的规范形式;即
[)" 和 @987654330 @ 与[2016-06-19, 2016-06-20]的范围完全相同 -
关于问题 #2,手册指出日期范围是离散的。那么
upper不应该返回2016-06-20而不是2016-06-21?