假设我们选择了日期,例如'2017-07-05'。使用PostgreSQL,如何获取所选日期之间的所有日期列表,例如20天前?所以预期输出后:
2017-07-05
2017-07-04
2017-07-03
...
2017-06-15
换句话说,我得到:selected_date和:offset as params,需要输出范围内的所有日期。
答案 0 :(得分:3)
您可以使用generate_series()
:
select dt::date
from generate_series(date '2017-07-05' - interval '20' day, date '2017-07-05', interval '1' day) as t(dt)
order by dt::date desc;
投标dt::date
是必要的,因为generate_series()
会返回timestamp
而不是date
答案 1 :(得分:0)
最后这对我有用。我同时说它,但有点不同的方式,所以也许它可以帮助别人
select '2017-07-01'::date - d.date as selected_date
from generate_series(0, 20) as d(date)
order by selected_date desc