यह तिमाही का सप्ताह (रविवार - शनिवार) प्राप्त करेगा:
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 दिन जोड़ें)।