【发布时间】:2021-10-19 14:22:34
【问题描述】:
我正在尝试创建一个递归 CTE,它每 10 分钟生成一个日期/时间并在午夜停止,但我在语法上苦苦挣扎,似乎无法让它工作。
我会非常感谢任何可以帮助我的人。提前感谢所有回答的人。
ALTER SESSION SET NLS_DATE_FORMAT = 'MMDDYYYY HH24:MI:SS';
with date_rows
(( SELECT TO_DATE('2021/08/20 18:30:25', 'YYYY/MM/DD HH24:MI:SS') as start_date FROM DUAL )
union all
select start_date+interval '10' minute
from date_rows
where start_date <
TRUNC(start_date) + INTERVAL '1' DAY)
select * from date_rows;
【问题讨论】:
-
什么版本的Oracle?
-
@MTO 我总是在实时 SQL 上进行测试,因此响应的人可以使用与我测试的 Oracle 版本相同
-
Oracle 的早期版本中存在一个错误,这意味着递归子查询因式分解子句无法处理
DATE数据类型,因此如果您使用的是 Oracle 11g(可能是 12c ) 和更早版本,或者如果您使用的是更高版本。
标签: sql oracle datetime recursion common-table-expression