Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle - तिथियों को तिमाहियों में तोड़ें

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 सटीक तिमाही समाप्ति नहीं है तो हम उस तिमाही को समाप्त करते हैं जो समाप्ति तिथि से पहले समाप्त हो गई थी (जिसमे समाप्ति तिथि नहीं है)।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. (+) =ऑरैकल एसक्यूएल में ऑपरेटर जहां क्लॉज

  2. एक ही दृश्य में दूसरे कॉलम की गणना करने के लिए परिकलित कॉलम का उपयोग कैसे करें

  3. Oracle में गतिशील तालिका विभाजन

  4. Oracle में सिस्टमस्टैम्प फ़ंक्शन

  5. शून्य मान की अनुमति देने के लिए ORACLE बाधा, IF