Bạn chỉ cần thêm bộ lọc sau :
WHERE TO_CHAR(date_column, 'DY','NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN')
Truy vấn của bạn sẽ giống như sau:
SELECT SLA_Date
FROM orders
WHERE TO_CHAR(SLA_Date, 'DY','NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN')
Ví dụ:(mệnh đề WITH chỉ để tạo một trường hợp thử nghiệm), truy vấn dưới đây chỉ hiển thị các ngày trong tuần (tức là không bao gồm Thứ Bảy và Chủ Nhật) từ 1st May 2015
đến 31st May 2015
:
SQL> WITH DATA AS
2 (SELECT to_date('05/01/2015', 'MM/DD/YYYY') date1,
3 to_date('05/31/2015', 'MM/DD/YYYY') date2
4 FROM dual
5 )
6 SELECT date1+LEVEL-1 the_date,
7 TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN') day
8 FROM DATA
9 WHERE TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN')
10 NOT IN ('SAT', 'SUN')
11 CONNECT BY LEVEL <= date2-date1+1;
THE_DATE DAY
--------- ---
01-MAY-15 FRI
04-MAY-15 MON
05-MAY-15 TUE
06-MAY-15 WED
07-MAY-15 THU
08-MAY-15 FRI
11-MAY-15 MON
12-MAY-15 TUE
13-MAY-15 WED
14-MAY-15 THU
15-MAY-15 FRI
18-MAY-15 MON
19-MAY-15 TUE
20-MAY-15 WED
21-MAY-15 THU
22-MAY-15 FRI
25-MAY-15 MON
26-MAY-15 TUE
27-MAY-15 WED
28-MAY-15 THU
29-MAY-15 FRI
21 rows selected.
SQL>
Để biết ví dụ chi tiết, hãy xem Tạo ngày, tên tháng, số tuần, số ngày giữa hai ngày