【问题标题】:How to select list of next 30 dates for an input date parameter in oracle pl/sql or sql?如何为 oracle pl/sql 或 sql 中的输入日期参数​​选择下一个 30 个日期的列表?
【发布时间】:2016-02-03 11:51:24
【问题描述】:

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

【问题讨论】:

    标签: sql oracle oracle11g oracle10g


    【解决方案1】:

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

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

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

    Here 是关于语法和实现递归方式的更多细节。

    鉴于我们在 DUAL 上进行了递归,没有条件(未使用 PRIOR 子句),我们使用 LEVEL 来求和 1、2、3(+ LEVEL)天并限制递归级别的数量我们需要 (&lt;=30)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多