postgresql 生成两个日期字段之间的日期列表

postgresql generating a list of dates between two dates fields

我想从两个字段中获取日期列表:开始和结束。 我在这里找到了一个案例:

但我想有一个更好的解决方案,而不需要通过中介table。

这里是初始的table:

这是我想要的结果:

谢谢

使用generate_series()

select t.id, t.name, t.g.dt::date as start_end
from the_table t
  cross join generate_series(t.date_start, t.date_end, interval '1 day') as g(dt)
order by t.id, g.dt;