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
上一篇下一篇

猜你喜欢

热点阅读