Я пытаюсь получить данные между двумя датами с интервалами 'n' ... проблема в том, что я не получаю желаемый результат после интервалов 8 часов ... мое значение в интервале 'n' может варьироваться до любое число от 1 до 120.
Ниже приведен псевдокод того, что я пытаюсь сделать:
- я сначала выбираю количество часов между двумя датами
SELECT
24 * (SYSDATE - to_date('2018-04-16 15:20', 'YYYY-MM-DD hh24:mi')) AS diff_hours
FROM dual;
- Затем я использую указанное выше значение в CONNECT BY ROWNUM <= ROUND ((часы между двумя датами / n), 0), чтобы получить данные за n интервалов </strong>
SELECT TRUNC(sysdate - (rownum/ROUND((24/n),0)),'HH24') as the_hour
FROM dual
CONNECT BY ROWNUM <= ROUND((hours between two dates/n),0) ;
Пример запроса
SELECT
24 * (SYSDATE - to_date('2018-04-16 15:20', 'YYYY-MM-DD hh24:mi')) AS diff_hours
FROM dual;
SELECT TRUNC(sysdate - (rownum/ROUND((24/8),0)),'HH24') as the_hour
FROM dual
CONNECT BY ROWNUM <= ROUND((724/8),0) ;
Как я могу изменить вышеуказанный запрос, чтобы получать данные с интервалом в n часов между двумя датами, где n - любое количество часов?