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
पैरा के लिए नियम, आपको अपने उद्देश्यों के अनुरूप क्वेरी को समायोजित करने की आवश्यकता हो सकती है:
- यदि start_date सटीक तिमाही प्रारंभ नहीं है तो यह प्रभावी रूप से तिमाही के प्रारंभ दिनांक का उपयोग करता है।
- यदि end_date सटीक तिमाही समाप्ति नहीं है तो हम उस तिमाही को समाप्त करते हैं जो समाप्ति तिथि से पहले समाप्त हो गई थी (जिसमे समाप्ति तिथि नहीं है)।