Postgresql @&燃气轮机;操作员输出不是预期结果?

Postgresql @&燃气轮机;操作员输出不是预期结果?,postgresql,operator-keyword,Postgresql,Operator Keyword,我目前正在试图理解为什么当我计算此查询时,@>会给我假消息 select tsrange('1990-01-01 01:00:00','infinity') @> tsrange('1990-01-01 00:00:00','2001-10-01 00:00:00') 据我所知,接线员 它应该回答 第一个范围是否包含第二个范围 在这种情况下,我的意思是肯定的 当我改变下限时,它似乎起作用,但我为什么要改变它呢? 它还应该包含第二个吗?或者我遗漏了什么结果是正确的,它必须是false。范

我目前正在试图理解为什么当我计算此查询时,
@>
会给我假消息

select tsrange('1990-01-01 01:00:00','infinity') @> tsrange('1990-01-01 00:00:00','2001-10-01 00:00:00')

据我所知,接线员

它应该回答

第一个范围是否包含第二个范围

在这种情况下,我的意思是肯定的

当我改变下限时,它似乎起作用,但我为什么要改变它呢?
它还应该包含第二个吗?或者我遗漏了什么

结果是正确的,它必须是
false
。范围右操作数从
1990-01-01 00:00:00开始,而左操作数从
1990-01-01 01:00:00开始,距离左操作数一小时。这就是它返回
false
的原因。with
@>
运算符右操作数的范围必须在左操作数的范围内。(包括两个边界)

如果您像下面这样比较,它将返回
true

select tsrange('1990-01-01 00:00:00','infinity') @> tsrange('1990-01-01 00:00:00','2001-10-01 00:00:00')
也许您在寻找“重叠”(
&&&
),而不是“包含”(
@>
)?