【发布时间】:2021-05-31 16:55:33
【问题描述】:
以下面的查询为例
WITH dummy(x) AS (
SELECT '[2018-12-01, 2019-01-15]'::daterange
)
SELECT lower(x), upper(x) FROM dummy
这给了
lower | upper
------------+------------
2018-12-01 | 2019-01-16
插入文字的上限是2019-01-15,但是当我检索它时,上限神奇地变成了2019-01-16。如何保留原始边界?
【问题讨论】:
-
你不能 - this is documented in the manual "内置范围类型 int4range、int8range 和 daterange 都使用包含下限但不包括上限的规范形式;即,
[)" -
你所能做的就是测试上限是否包含
SELECT upper_inc('[2018-12-01, 2019-01-15]'::daterange); f
标签: sql postgresql range date-range sqldatatypes