如何 select 为 oracle pl/sql 或 sql 中的输入日期参数​​列出接下来的 30 个日期?

How to select list of next 30 dates for an input date parameter in oracle pl/sql or sql?

我正在尝试 select 接下来的 30 个日期作为输入日期参数​​,即如果我输入 2/3/2016 我应该能够 select 接下来的 30 天。有没有办法在 oracle 中做到这一点? 预期的输出是: 2016 年 3 月 3 日 2016 年 4 月 3 日 2016 年 5 月 3 日....

尝试以下操作,将 sysdate 替换为您的开始日期:

select trunc(sysdate) + level
from dual
connect by level <= 30

这是基于分层查询以及将数字添加到日期意味着添加天数这一事实。 LEVEL 是一个伪列,在您使用 CONNECT BY 的地方是一次性的,它似乎表示递归中的级别;因此,第一次出现的级别为 1,然后是 2,依此类推。

Here 是有关语法和递归实现方式的更多详细信息。

鉴于我们在 DUAL 上有递归,没有条件(没有使用 PRIOR 子句),我们使用 LEVEL 来计算 1、2、3(+ LEVEL)天并限制我们需要的递归级别数 (<=30)