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

दो तिथियों के बीच शुक्रवारों की संख्या

यह यह करेगा:

select ((next_day(date2-7,'FRI')-next_day(date-1,'FRI'))/7)+1 as num_fridays
from data

शायद सबसे अच्छा अगर मैं इसे तोड़ दूं। NEXT_DAY फ़ंक्शन अगले दिन लौटता है जो एक (इस मामले में शुक्रवार) बाद है तारीख।

तो d1 के बाद पहला शुक्रवार खोजना होगा:

next_day( d1, 'FRI')

लेकिन अगर d1 एक शुक्रवार है जो अगले शुक्रवार को वापस आएगा, तो हम समायोजित करते हैं:

next_day( d1-1, 'FRI')

इसी प्रकार अंतिम शुक्रवार को d2 तक और इसमें शामिल करने के लिए हम यह करते हैं:

next_day( d1-7, 'FRI')

2 को घटाने पर कई दिन मिलते हैं:0 यदि वे एक ही तिथि हैं, 7 यदि वे एक सप्ताह अलग हैं और इसी तरह:

next_day( d1-7, 'FRI') - next_day( d1-1, 'FRI') 

हफ़्तों में बदलें:

(next_day( d1-7, 'FRI') - next_day( d1-1, 'FRI')) / 7

अंत में, अगर वे एक ही तारीख हैं तो हमें 0 मिलता है, लेकिन वास्तव में 1 शुक्रवार है, और इसी तरह हम एक जोड़ते हैं:

((next_day( d1-7, 'FRI') - next_day( d1-1, 'FRI')) / 7) + 1


  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. Oracle sql में % प्रकार का क्या अर्थ है?

  3. बाइंड चर और प्रतिस्थापन चर (जो मैं &&का उपयोग करके इनपुट करता हूं) के बीच अंतर क्या है?

  4. Oracle प्रपत्रों में रिकॉर्ड समूह के साथ ट्री आइटम को आबाद करना

  5. ऑरैकल टेबल या दृश्य अंदर संग्रहीत प्रक्रिया से मौजूद नहीं है