在 Amazon Redshift 中使用多个日期范围
Using multiple date ranges in 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))
有什么想法吗?
您需要使用日期算法:
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))
)
我正在尝试获取以下日期范围:
- 当前日期 - 前 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))
有什么想法吗?
您需要使用日期算法:
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))
)