PostgreSQL范围类型中’infinity’的含义是什么?指定无穷大或-infinity作为边界或NULL是否有任何区别?即是无穷大是指定范围界限是无限的显式形式,而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
解决方法
NULL对于
overlap operator
&&
分别为-infinity或infinity做同样的事情.我引用
the manual here:
Using NULL for either bound causes the range to be unbounded on that side.
但作为价值,NULL仍然与’无限’截然不同!
SELECT tstzrange('-infinity','infinity') = tstzrange(NULL,NULL);
返回FALSE(不是NULL,请注意!).
更多内容在此SQLfiddle.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。