从PostgreSQL中的行生成系列

时间:2016-04-29 20:23:17

标签: sql postgresql generate-series

我有一张reservations表,其中有两列(started_atended_at)。我想构建一个查询,将预订行扩展到各自的日子。因此,例如,如果预订持续5天,我想要5行回来。有点像:

当前输出

id | started_at | ended_at
----------------------------
1  | 2016-01-01 | 2016-01-05
2  | 2016-01-06 | 2016-01-10

期望输出

id | date
---------------
1  | 2016-01-01
1  | 2016-01-02
1  | 2016-01-03
1  | 2016-01-04
1  | 2016-01-05
2  | 2016-01-06
2  | 2016-01-07
2  | 2016-01-08
2  | 2016-01-09
2  | 2016-01-10

我认为generate_series可能在这里有用,但我不确定语法。非常感谢任何帮助

SQL小提琴

http://sqlfiddle.com/#!15/f0135/1

1 个答案:

答案 0 :(得分:2)

这在你的小提琴上运行正常

SELECT id, to_char(generate_series(started_at, ended_at, '1 day'),'YYYY-MM-DD') as date
FROM reservations;