我最近发现时间范围可以是empty
,与null
字段相比似乎有所不同。
db=# select tstzrange(now(), now());
tstzrange
-----------
empty
(1 row)
db=# select tstzrange(now(), now()) is null;
?column?
----------
f
(1 row)
如何为查询匹配empty
字段?
答案 0 :(得分:5)
将其与字符串'empty'
select tstzrange(now(), now()) = 'empty' as out
产生:
out
-----
t
对于带有查询的非空结果,如:
select tstzrange(now(), now() + interval '1d') = 'empty' as out
它始终如一地产生:
out
-----
f
事实上'empty'::tstzrange
的隐式转换发生了。
答案 1 :(得分:1)
select isempty(tstzrange(now(), now())); -- true
select isempty(tstzrange(now(), now() + interval '1d')); -- false