SELECT ADD_MONTHS( TRUNC(PARAM.start_date, 'Q'), 3*(LEVEL-1) ) AS qstart
, ADD_MONTHS( TRUNC(PARAM.start_date, 'Q'), 3*(LEVEL) ) -1 AS qend
FROM ( SELECT TO_DATE('&start_date') AS start_date
, TO_DATE('&end_date') AS end_date
FROM DUAL
) PARAM
CONNECT BY ADD_MONTHS( TRUNC(PARAM.start_date, 'Q'), 3*(LEVEL) ) -1
<= PARAM.end_date
Regels voor parameters, mogelijk moet u de zoekopdracht aanpassen aan uw doeleinden:
- Als start_date geen exacte kwartaalstart is, wordt in feite de startdatum van het kwartaal bevatten gebruikt.
- Als einddatum niet exact het einde van het kwartaal is, eindigen we op het kwartaal dat eindigde VOOR einddatum (niet het kwartaal dat de einddatum bevat).