PostgreSQL范围类型中的NULL与`infinity`

编程入门 行业动态 更新时间:2024-10-28 22:32:10
本文介绍了PostgreSQL范围类型中的NULL与`infinity`的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在PostgreSQL范围类型中无穷大是什么意思?将 infinity 或 -infinity 作为界限,或 NULL ?即是 infinity 的显式形式,它指定范围界限是无限的,而 NULL 会隐式指定一个无限范围界限?

What is the meaning of 'infinity' in PostgreSQL range types? Is there any difference between specifying infinity or -infinity as a bound, or NULL? I.e. is infinity an explicit form of specifying that the range bound is infinite, whereas NULL would implicit specify an infinite bound range?

请参见以下示例:

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 对于 重叠运算符&& 为 -infinity 或 infinity 。我在此处引用手册:

NULL does the same thing for the overlap operator && as -infinity or infinity, respectively. I quote the manual here:

对任一边界使用NULL会导致该范围在该侧不受限制。

Using NULL for either bound causes the range to be unbounded on that side.

但是作为 value , NULL 仍然不同于'infinity' !

But as value, NULL is still distinct from 'infinity'!

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

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

Returns FALSE (not NULL, mind you!).

此 SQLfiddle 。

更多推荐

PostgreSQL范围类型中的NULL与`infinity`

本文发布于:2023-10-16 11:18:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1497403.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:类型   PostgreSQL   infinity   NULL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!