Запрос Oracle, содержащий список часов в памяти

#sql #oracle11g

#sql #oracle11g

Вопрос:

прошло 3 дня, пока я ищу решение, но нет способа в oracle sql, я хочу, чтобы запрос выдал мне следующий результат в первый раз, без создания таблицы в моей базе данных:

 Time24
00:00:00
00:00:01
00:00:02
00:00:03
.
.
23:59:59
  

Спасибо.

Комментарии:

1. Где / как вы хотите это сохранить? Во временной таблице, табличной переменной или просто выводить на экран или что-то еще?

2. Спасибо, Брэд, я хочу распечатать их на экране, как в ответах Алексея и Гордона

3. @APC Да, это старый сервер компании 🙂

4. Боже мой, я только что проверил версию, это 11g, а не 8, извините @ APC!

Ответ №1:

Вы можете использовать connect by для генерации нужных чисел, а затем отформатировать их в виде строки:

 select to_char(to_date('00:00:00', 'HH24:MI:SS')   (level - 1) * interval '1' second, 'HH24:MI:SS') as time24
from dual
connect by level < 24*60*60;
  

Ответ №2:

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

 select extract(hour from seconds) hours,
       extract(minute from seconds) minutes,
       extract(second from seconds) seconds
from  (      
        select level  * interval '1' second as seconds
        from dual
        connect by level <60*60*24
      )