Reputation: 159
how i will get last 7 days from current date?
suppose current date is: 2020-06-17
Output Should be:
2020-06-10,2020-06-11, 2020-06-12,2020-06-13,2020-06-14,2020-06-15,2020-06-16
Upvotes: 1
Views: 1573
Reputation: 14066
testdb=# select dt::date d from generate_series(current_date - interval '7 days', current_date - interval '1 days', interval '1 days') dt;
d
------------
2020-06-10
2020-06-11
2020-06-12
2020-06-13
2020-06-14
2020-06-15
2020-06-16
(7 rows)
Or, as an array/string:
testdb=# select array_agg(dt::date) last_7d from generate_series(current_date - interval '7 days', current_date - interval '1 days', interval '1 days') dt;
last_7d
--------------------------------------------------------------------------------
{2020-06-10,2020-06-11,2020-06-12,2020-06-13,2020-06-14,2020-06-15,2020-06-16}
(1 row)
testdb=# select array_to_string(array_agg(dt::date), ',') last_7d from generate_series(current_date - interval '7 days', current_date - interval '1 days', interval '1 days') dt;
last_7d
------------------------------------------------------------------------------
2020-06-10,2020-06-11,2020-06-12,2020-06-13,2020-06-14,2020-06-15,2020-06-16
(1 row)
Upvotes: 3