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

时间:2015-01-02 10:41:25

标签: sql postgresql amazon-redshift

我想抓住以下日期范围:

  • 当前日期 - 前6周
  • 51周前 - 55周前

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

您需要使用日期算术:

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以摆脱使用{的时间部分{1}}

本手册介绍了所有可用的日期/时间功能:
http://www.postgresql.org/docs/current/static/functions-datetime.html