在 Amazon Redshift 中使用多个日期范围

Using multiple date ranges in Amazon Redshift

我正在尝试获取以下日期范围:

我有以下查询,但它似乎不起作用:

OR date(date) >= date(dateadd(week,-6, current_date))
OR date(date) >= date(dateadd(week,-55, current_date))
OR date(date) <= date(dateadd(week,-51, current_date))

有什么想法吗?

您需要使用日期算法:

select *
from the_table
where the_date_column <= current_date - interval '6 week'
   or the_date_column between 
                           current_date - interval '55 week' 
                      and  current_date - interval '51 week';

如果 the_date_column 实际上是 timestamp 列(不是 date 列),您可能希望将其转换为 date 以去除时间部分使用 the_date_column::date

手册解释了所有可用的 date/time 函数:
http://www.postgresql.org/docs/current/static/functions-datetime.html

您应该使用 AND 来指定日期范围。尝试以下 where 条件。

date(date) >= date(dateadd(week,-6, current_date))
OR (
  date(date) >= date(dateadd(week,-55, current_date))
  AND
  date(date) <= date(dateadd(week,-51, current_date))
)