ORACLE SQL查询获取基于两小时的30分钟间隔的行

ORACLE SQL query to get rows of intervals of 30 minutes based on two hours

我需要执行一个查询,根据 start_hour 和 end_hour 两个小时为我提供 30 分钟间隔的行。 我有一个 table,在这个 table 我有这个列 "start_hour and end_hour"。 假设我有这个
| start_hour | end_hour |
| 09:00AM | 08:00PM |
我需要一个给出这样结果的查询。
|间隔 |
| 09:00AM |
| 09:30AM |
| 10:00AM |
| 10:30AM |
| 11:00AM |
| 11:30AM |
| 12:00AM |
| 12:30AM |
...
...
...
| 07:30PM |
| 08:00PM |
并且这些行需要以我在 table 中的 end_hour 值结束,如示例所示。 有人可以帮我怎么做,我尝试四舍五入 start_hour,但我没有任何结果。

这有点笨拙,需要根据您的具体需要进行一些编辑,但这是我几年前使用的代码的一个非常细微的修改,应该可以作为您的坚实起点:

select to_char(time_slot,'HH:MIPM') 
  from (select trunc(to_date('05/23/2019','MM/DD/YYYY'))+(rownum-1)*(30/24/60) time_slot 
          from dual 
          connect by level <= (24*2))
 where to_char(time_slot,'HH24:MI') between
    --start_hour
    '09:00'
    and
    --end hour
    '20:00';

OUTPUT
09:00AM
09:30AM
10:00AM
10:30AM
11:00AM
11:30AM
12:00PM
12:30PM
01:00PM
01:30PM
02:00PM
02:30PM
03:00PM
03:30PM
04:00PM
04:30PM
05:00PM
05:30PM
06:00PM
06:30PM
07:00PM
07:30PM
08:00PM