spróbuj tego,
ALTER SESSION SET NLS_DATE_FORMAT ='MM/DD GG AM';SELECT to_date('31.12.2017', 'MM/DD/RRRR') + (FLOOR(numer wiersza/24) + (MOD( rownum-1, 24)/24)) dt Z PODWÓJNEGO POŁĄCZENIA PRZEZ rownum <=((do_date('01.02.2018', 'MM/DD/RRRR')+(1/23)) - do_date('12 /31/2017', 'MM/DD/RRRR') + (MOD(rownum, 24)/24)) * 24ORDER BY 1;
Wyjście:
Wybrano 71 wierszy
Jeśli chcesz określić godzinę rozpoczęcia i godzinę zakończenia, użyj poniższego zapytania, właśnie zmodyfikowałem klauzule CONNECT BY i ORDER BY w moim pierwszym zapytaniu.
SELECT to_date('31.12.2017 22:00', 'MM/DD/RRRR HH:MI AM') + (FLOOR(rownum/24) + (MOD(rownum-1, 24) )/24)) dt Z PODWÓJNEGO POŁĄCZENIA WEDŁUG rownum <=CEIL(((do_date('01.01.2018 02:00 AM', 'MM/DD/RRRR HH:MI AM') - to_date('12/31 /2017 22:00', 'MM/DD/RRRR HH:MI AM')) * 24))+1 ORDER BY Rnum;
Wyjście
DT -----------12/31 10 PM12/31 11 PM01/01 12 AM01/01 01 AM01/01 02 AM