PostgreSQL使用小于/大于(<或>)与严格按(<<或>>)的左/右比较日期范围和日期

时间:2019-09-27 15:12:38

标签: postgresql

在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);

1 个答案:

答案 0 :(得分:0)

我更喜欢第一个变体,因为

  1. 我认为这更具可读性

  2. upper(mydateranges)上的B树索引可以支持它