Как построить диапазон значений от одной даты до другой

Есть таблица с 3 колонками (status, date_start, date_end).

(1, '2021-08-01 20:10:14', '2021-08-02 02:15:43')

Как из исходной получить следующее

(1, '2021-08-01 20:00')
(1, '2021-08-01 21:00')
(1, '2021-08-01 22:00')
 ....
(1, '2021-08-02 02:00')

По факту нужно построить диапазон значений от date_start до date_end


Ответы (1 шт):

Автор решения: Radzhab

Оказывается все делается через generate_series

select status, generate_series(
    date_trunc('hour', date_start),
    date_trunc('hour', date_end),
    interval '1 hour')
  from tab
→ Ссылка