SQL-запрос ORACLE для получения строк с интервалом 30 минут на основе двух часов - PullRequest
0 голосов
/ 24 мая 2019

Мне нужно сделать запрос, который даст мне строки с 30-минутными интервалами, основанными на двух часах, start_hour и end_hour. У меня есть таблица, в этой таблице у меня есть эти столбцы "start_hour and end_hour". Предполагая, что у меня есть это
| start_hour | end_hour |
| 09:00 | 08:00 PM |
Мне нужен запрос, который дал такой результат.
| интервалы |
| 09:00 | | 1006 * | 09:30 |
| 10:00 утра |
| 10:30 |
| 11:00 утра |
| 11:30 |
| 12:00 AM |
| 12:30 |
...
...
...
| 19:30 |
| 08:00 PM |
И строки должны заканчиваться в значении te end_hour, которое я имею в таблице, как показано в примере. Кто-то может помочь мне, как это сделать, я попытался округлить start_hour, но у меня нет никакого результата.

1 Ответ

0 голосов
/ 24 мая 2019

Это немного неуклюже и потребует немного редактирования в зависимости от ваших конкретных потребностей, но это немного измененный фрагмент кода, который я использовал несколько лет назад и который должен послужить вам хорошей отправной точкой:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...