在PostgreSQL中,当查询日期范围字段中某个日期之前或之后的范围时,以下哪项是更规范的模式?还是表现更好?
1。 将日期与范围的上/下值进行比较,并使用小于/大于运算符,例如:
select * from mytable where upper(mydateranges) <= '2000-01-02';
2。 或者,将日期变成具有无限上限/下限并使用运算符的严格左/严格右的日期范围,例如:
select * from mytable where mydateranges << '[2000-01-02,]';
以上示例将引用这样创建的表:
create table mytable (mydateranges daterange);
答案 0 :(得分:0)
我更喜欢第一个变体,因为
我认为这更具可读性
upper(mydateranges)
上的B树索引可以支持它