Bạn có thể tham gia bằng generate_series
đầu ra:
select
'2013-05-01'::date + g.o AS "date with offset"
from
generate_series(0, 30) AS g(o)
Đầu ra:
"2013-05-01"
"2013-05-02"
"2013-05-03"
...
"2013-05-29"
"2013-05-30"
"2013-05-31"
Hoặc ... một phương pháp dễ dàng hơn sau khi xác định một thủ tục mới được lưu trữ :)
CREATE OR REPLACE FUNCTION generate_series(date, date) RETURNS
SETOF date AS $$
SELECT $1 + g.s
FROM generate_series(0, ($2 - $1)) AS g(s);
$$ LANGUAGE SQL IMMUTABLE;
Chỉ cần gọi nó như thế này:
SELECT * FROM generate_series(start_date, end_date);