Oracle 使用临时表构建连续时间列表
2021-03-30 本文已影响0人
单v纯微笑
1.连续时间-日
-- 时间格式为:YYYY-MM-DD
SELECT
TO_DATE('开始时间', 'YYYY-MM-DD') + (LEVEL - 1) AS DATE_TIME
FROM
DUAL
CONNECT BY
LEVEL <= (TO_DATE('结束时间', 'YYYY-MM-DD') - TO_DATE('开始时间', 'YYYY-MM-DD')) + 1
2.连续时间-小时
-- 时间格式为:YYYY-MM-DD HH24:MI
SELECT
TO_DATE('开始时间', 'YYYY-MM-DD HH24:MI') + NUMTODSINTERVAL(ROWNUM - 1,
'HOUR') MONITOR_TIME
FROM
DUAL
CONNECT BY
ROWNUM <= ROUND(TO_NUMBER(TO_DATE('结束时间', 'YYYY-MM-DD HH24:MI') - TO_DATE('开始时间', 'YYYY-MM-DD HH24:MI')) * 24) + 1