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按每月每周关联数据表的主要内容,如果未能解决你的问题,请参考以下文章

将每日股票价格变成每周/每月/每季度/学期/每年?

如何在一个sql中以每周和每月的粒度计算数据

计算每月/每周级别的相关性

Google Analytics API 上的每日/每周/每月活跃用户

请问JS如何实现这样一个时间选择联动效果

git代码统计工具gitstat安装