#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. @экочергин