7

PostgreSQL 范围类型中的“无穷大”是什么意思?infinity将or指定-infinity为界限或之间有什么区别NULL吗?即是infinity指定范围界限是无限的显式形式,而NULL隐式指定无限界限范围?

请参阅以下示例:

SELECT tstzrange('-infinity','infinity') && tstzrange(NULL, NULL);
 ?column?
----------
 t

SELECT tstzrange('2013-01-01 00:00:00+01', '2013-02-01 00:00:00+01')
    && tstzrange(NULL, '2013-03-01 00:00:00+01');
 ?column?
----------
 t

SELECT tstzrange('2013-01-01 00:00:00+01', '2013-02-01 00:00:00+01')
    && tstzrange('-infinity', '2013-03-01 00:00:00+01');
 ?column?
----------
 t
4

1 回答 1

14

更新:稍后见,更好的解释:


NULL分别对重叠运算符&&做同样的事情-infinityinfinity。我在这里引用手册

对任一边界使用 NULL 会导致该边的范围无界。

但作为价值NULL还是有区别的'infinity'

SELECT tstzrange('-infinity','infinity') = tstzrange(NULL, NULL);

返回FALSE(不是NULL,请注意!)。

更多在这个SQLfiddle中。

于 2013-03-22T20:20:38.083 回答