我想抓住以下日期范围:
我有以下查询,但它似乎不起作用:
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))
有什么想法吗?
答案 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