आप पंक्ति जनरेटर . का उपयोग कर सकते हैं तकनीक पहले किसी दी गई सीमा के लिए तिथियां उत्पन्न करती है, और फिर केवल शनिवार और रविवार की गणना करती है ।
उदाहरण के लिए, यह प्रश्न मुझे 1 जनवरी 2014 और 31 दिसंबर 2014 के बीच शनिवार और रविवार की कुल संख्या देगा -
SQL> WITH DATA AS
2 (SELECT to_date('01/01/2014', 'DD/MM/YYYY') date1,
3 to_date('31/12/2014', 'DD/MM/YYYY') date2
4 FROM dual
5 )
6 SELECT SUM(holiday) holiday_count
7 FROM
8 (SELECT
9 CASE
10 WHEN TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN') IN ('SAT', 'SUN')
11 THEN 1
12 ELSE 0
13 END holiday
14 FROM data
15 CONNECT BY LEVEL <= date2-date1+1
16 )
17 /
HOLIDAY_COUNT
-------------
104
SQL>