如何在oracle sql中的2个日期之间生成星期日的所有日期?

lee*_*lin 1 sql oracle

如何在oracle SQL中的2个日期之间生成星期日的所有日期?

例如,如果我想要“01/10/2018”“31/12/2018”之间的所有星期日的输出

will be:
07/10/2018
14/10/2018
21/10/2018
...
30/12/2018
Run Code Online (Sandbox Code Playgroud)

另外如何生成两个日期之间的所有日期?

示例:从“01/12/2018”“31/12/2018”

输出将是:

01/12/2018
02/12/2018
03/12/2018
...
31/12/2018
Run Code Online (Sandbox Code Playgroud)

Lit*_*oot 5

就是这样; 热膨胀系数(dates)创建的所有日期的“日历”无法启动2018-10-01,对于之间的天数2018-10-012018-12-31。这回答了你的第二个问题。

对于第一个问题,使用TO_CHAR具有适当格式掩码 ( dy) 和日期语言的函数(因为,如果我不使用它,您将获得克罗地亚语名称,因为这是我的默认语言),选择所有星期日。

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>
Run Code Online (Sandbox Code Playgroud)