Добавить дату в запрос

#sql #oracle #datetime

Вопрос:

Я хочу добавить временные ряды в автоматически сгенерированную таблицу базы данных. Предположим, что значения столбцов должны быть

  • 23-07-2021 00:05:00
  • 23-07-2021 00:10:00
  • 23-07-2021 00:15:00
  • 23-07-2021 00:20:00 и так далее с интервалом в 5 минут.

Как мне это сделать в Oracle db?

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

1. Когда начинается и заканчивается? Как вы предоставляете эту информацию для запроса?

2. @mathguy, начиная с 1 июня 2021 года и заканчивая текущей датой 1

Ответ №1:

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

 select to_date('23-07-2021 00:00:00', 'dd-mm-yyyy hh24:mi:ss')   level / 24 / 60 * 5 
  from dual 
connect by level <= 1000
 

Где

  • to_date(’23-07-2021 00:00:00′, ‘дд-мм-гггг hh24:mi:ss’) — дата начала
  • уровень / 24 / 60 * 5 — 5 Минутный шаг.
  • подключение по уровню

UPD. Дополнительное подтверждение от OP: «Это просто создает временную таблицу. Я хотел вставить эти значения в новую таблицу. И значение должно быть просто до current_date 1»

 create table ek_test as 
select to_date('23-07-2021 00:00:00', 'dd-mm-yyyy hh24:mi:ss')   level / 24 / 60 * 5 date_col
from dual 
connect by to_date('23-07-2021 00:00:00', 'dd-mm-yyyy hh24:mi:ss')   level / 24 / 60 * 5 < sysdate   1
 

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

1. Это просто создает временную таблицу. Я хотел вставить эти значения в новую таблицу. И значение должно быть просто до current_date 1. @экочергин