You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle按10分钟间隔生成日期序列的递归CTE语法问题求助

递归CTE语法问题修复方案

存在的语法错误

  • 递归CTE定义不符合Oracle语法规范:缺少AS关键字,且锚查询外层多了一层冗余括号
  • 代码中混入了HTML转义字符&lt;,SQL运行时需要替换为原生小于号<

修正后可直接运行的代码

ALTER SESSION SET NLS_DATE_FORMAT = 'MMDDYYYY HH24:MI:SS';

WITH date_rows AS (
  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;

可选优化说明

如果不需要生成跨午夜的时间值,可以将终止条件修改为以下写法,避免输出次日时间:

WHERE start_date + INTERVAL '10' MINUTE < TRUNC(start_date) + 1

如果你的Oracle版本不支持INTERVAL语法,也可以用日期计算等价替换:10分钟等价于10/1440(一天共1440分钟),TRUNC(start_date) + 1等价于当日午夜。

内容的提问来源于stack exchange,提问作者Beefstu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:18:03