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

दो तिथियों के बीच व्यावसायिक दिन या घंटे कैसे प्राप्त करें

आप नहीं कर सकते। यह इतना सरल है। राष्ट्रीय अवकाश दुनिया भर में अलग-अलग होते हैं, वे साल-दर-साल बदलते हैं और किसी भी समय अतिरिक्त जोड़े या निकाले जा सकते हैं। इसके अतिरिक्त कुछ अधिकार क्षेत्र में राष्ट्रीय अवकाश होते हैं जो सप्ताहांत पर पड़ते हैं और अगले सप्ताह होते हैं; अन्य नहीं करते हैं।

आपको इसमें एक कैलेंडर तालिका बनानी होगी और राष्ट्रीय अवकाश/सप्ताहांत आदि को फ़्लैग करना होगा।

उदाहरण के लिए

create table calender
  ( day date
  , weekend varchar2(1)
  , holiday varchar2(1)
    );

फिर इसमें कुछ डेटा डालें...

 insert into calender (day, weekend)
 select trunc(sysdate + level)
      , case when to_date(sysdate + level,'fmDAY') in ('SATURDAY','SUNDAY') 
                  then 'Y' else 'N' end
   from dual
connect by level <= 365

अंत में, मैन्युअल रूप से अपडेट करें कि आप वहां राष्ट्रीय अवकाश के रूप में क्या मानते हैं।

इसके बाद आप कार्य दिवसों का चयन कर सकते हैं, इस पर निर्भर करते हुए कि आपने इसे इस तरह से कैसे भरा है:

select count(*)
  from calender
 where day between :startdate and :enddate
   and weekend = 'N'
   and holiday = 'N'


  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. ओरेकल डेटाबेस 11g एक्सप्रेस संस्करण को स्थापित करने के बाद एक नया डेटाबेस कैसे बनाएं?

  5. क्या Oracle प्रबंधित ड्राइवर async/प्रतीक्षा ठीक से उपयोग कर सकता है?