Đây là cách; CTE (dates
) tạo "lịch" của tất cả các ngày bắt đầu từ 2018-10-01
, cho số ngày từ 2018-10-01
và 2018-12-31
. Điều này trả lời câu hỏi thứ hai của bạn.
Đối với câu hỏi đầu tiên, sử dụng TO_CHAR
chức năng với mặt nạ định dạng thích hợp (dy
) và ngôn ngữ ngày tháng (bởi vì, nếu tôi không sử dụng nó, bạn sẽ lấy tên tiếng Croatia làm ngôn ngữ mặc định của tôi), hãy chọn tất cả các ngày Chủ nhật.
SQL> with dates as
2 (select date '2018-10-01' + level - 1 datum
3 from dual
4 connect by level <= date '2018-12-31' - date '2018-10-01' + 1
5 )
6 select datum
7 From dates
8 where to_char(datum, 'dy', 'nls_date_language = english') = 'sun';
DATUM
-----------
07-oct-2018
14-oct-2018
21-oct-2018
28-oct-2018
04-nov-2018
11-nov-2018
18-nov-2018
25-nov-2018
02-dec-2018
09-dec-2018
16-dec-2018
23-dec-2018
30-dec-2018
13 rows selected.
SQL>