在PostgreSQL范围类型中'infinity‘是什么意思?指定infinity或-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发布于 2013-03-23 04:20:38
更新:稍后查看,更好的解释:
NULL分别为overlap operator 和-infinity或infinity做同样的事情。我引用the manual here的话
对任何一个界限使用NULL都会导致该范围在该边上是无界的。
但就价值而言,NULL仍然有别于'infinity'!
SELECT tstzrange('-infinity','infinity') = tstzrange(NULL, NULL);返回FALSE (注意,不是NULL!)。
在此中有更多信息。
https://stackoverflow.com/questions/15578050
复制相似问题