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

Oracle क्वेरी में एक तिमाही के सप्ताह का निर्धारण कैसे करें

यह तिमाही का सप्ताह (रविवार - शनिवार) प्राप्त करेगा:

SELECT TO_CHAR( SYSDATE, 'YYYY-"Q"Q-"W"' )
     || ( 7 + TRUNC( SYSDATE + 1, 'IW' ) - TRUNC( TRUNC( SYSDATE, 'Q' ) + 1, 'IW' ) ) / 7;
         AS "Current Time"
FROM DUAL

स्पष्टीकरण :

  • आप NEXT_DAY(TRUNC( date_value ), 'SUNDAY' ) - 7 का उपयोग करके उस रविवार को ढूंढ सकते हैं जो या तो किसी दी गई तारीख को या उससे ठीक पहले था। (जो NLS_TERRITORY . पर निर्भर है सेटिंग) या TRUNC( date_value + 1, 'IW') - 1 (जो छोटा है और किसी भी सेटिंग पर निर्भर नहीं है)।
  • TRUNC( date_value, 'Q' ) तिमाही के पहले दिन की तारीख देता है जिसमें value . होता है तारीख (यानी 1 जनवरी, 1 अप्रैल, 1 जुलाई या 1 अक्टूबर)।
  • दोनों को एक साथ रखते हुए, तिमाही के पहले दिन या उससे ठीक पहले के रविवार को TRUNC(TRUNC( date_value, 'Q') + 1, 'IW') - 1 द्वारा दिया जाता है। कोड>
  • इसलिए, तिमाही के शुरू होने से ठीक पहले के रविवार और किसी दी गई तारीख को या उससे ठीक पहले रविवार के बीच के दिनों की संख्या है:( TRUNC( date_value + 1, ' IW' ) - 1 ) - ( TRUNC ( TRUNC ( date_value, 'Q' ) + 1, 'IW' ) - 1 ) - जिसे -1 . रद्द करके सरल बनाया जा सकता है शर्तें।
  • सप्ताहों के अंतर की संख्या केवल 7 से विभाजित संख्या है (लेकिन 0-अनुक्रमित मान देता है और आप तिमाही की सप्ताह संख्या को 1-अनुक्रमित करना चाहते हैं; आप या तो परिणाम में 1 सप्ताह जोड़ते हैं या, इससे पहले विभाजन करते हुए, 7 दिन जोड़ें)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DBMS OUTPUT PUT कुछ भी प्रिंट नहीं करता है

  2. खाली लेकिन विशाल LOB कॉलम से कैसे छुटकारा पाएं?

  3. सिद्धांत 2 जहां तुलना के बिना स्थिति

  4. तालिका बनाएं - SQL त्रुटि:ORA-00905:अनुपलब्ध कीवर्ड

  5. कैसे पता करें कि कोई VARRAY के भीतर कोई मान मौजूद है या नहीं?