ORACLE按每月每周关联数据表
Posted Lucas_zou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE按每月每周关联数据表相关的知识,希望对你有一定的参考价值。
-- 时间段内的每个月份,{0}:开始日期,{1}:结束日期 SELECT TO_CHAR(ADD_MONTHS(TO_DATE(‘{0}‘, ‘YYYY-MM‘), ROWNUM - 1), ‘YYYYMM‘) AS MONTHLIST FROM DUAL CONNECT BY ROWNUM <= MONTHS_BETWEEN(TO_DATE(‘{1}‘, ‘YYYY-MM‘), TO_DATE(‘{0}‘, ‘YYYY-MM‘)) + 1
例: SELECT TO_CHAR(ADD_MONTHS(TO_DATE(‘2017-01‘, ‘YYYY-MM‘), ROWNUM - 1), ‘YYYYMM‘) AS MONTHLIST FROM DUAL CONNECT BY ROWNUM <= MONTHS_BETWEEN(TO_DATE(‘2017-06‘, ‘YYYY-MM‘), TO_DATE(‘2017-01‘, ‘YYYY-MM‘)) + 1 执行结果: MONTHLIST 1 201701 2 201702 3 201703 4 201704 5 201705 6 201706
-- 时间段内的每周,{0}:开始时间,{1}:结束时间 SELECT TO_CHAR(TO_DATE(‘{0}‘, ‘YYYY-MM-DD‘) + (ROWNUM - 1) * 7, ‘IYYYIW‘) AS WEEKLIST FROM DUAL CONNECT BY ROWNUM <= (TRUNC(TO_DATE(‘{1}‘, ‘YYYY-MM-DD‘), ‘IW‘) - TRUNC(TO_DATE(‘{0}‘, ‘YYYY-MM-DD‘), ‘IW‘)) / 7 + 1 例: SELECT TO_CHAR(TO_DATE(‘2017-04-25‘, ‘YYYY-MM-DD‘) + (ROWNUM - 1) * 7, ‘IYYYIW‘) AS WEEKLIST FROM DUAL CONNECT BY ROWNUM <= (TRUNC(TO_DATE(‘2017-12-01‘, ‘YYYY-MM-DD‘), ‘IW‘) - TRUNC(TO_DATE(‘2017-04-25‘, ‘YYYY-MM-DD‘), ‘IW‘)) / 7 + 1 执行结果: WEEKLIST 1 201717 2 201718 3 201719 4 201720 5 201721 6 201722 7 201723 8 201724 9 201725 10 201726 11 201727 12 201728 13 201729 14 201730 15 201731 16 201732 17 201733 18 201734 19 201735 20 201736 21 201737 22 201738 23 201739 24 201740 25 201741 26 201742 27 201743 28 201744 29 201745 30 201746 31 201747 32 201748
记录完毕
以上是关于ORACLE按每月每周关联数据表的主要内容,如果未能解决你的问题,请参考以下文章