国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Oracle數據庫如何獲取當前自然周,當前周的起始和結束日期

瀏覽:95日期:2023-03-12 15:25:35
目錄
  • Oracle獲取當前自然周,當前周的起始和結束日期
  • Oracle獲取自然周數
    • 1. 按天統計
    • 2. 按自然周統計
    • 3. 按月統計
    • 4. 按季統計
    • 5. 按年統計
  • 總結

    Oracle獲取當前自然周,當前周的起始和結束日期

    SELECT to_char(sysdate,"iw")   from dual; --本周是第幾個自然周SELECT to_char(sysdate,"yyyy") into v_sbzq_nf from dual;  -- 當前年份SELECT to_char(TRUNC(TO_DATE(to_char(sysdate,"yyyy-MM-dd"),"yyyy-MM-dd"),"IW"),"yyyy-MM-dd")  FROM DUAL;--本周的起始時間(本周周一日期)SELECT to_char(TRUNC(TO_DATE(to_char(sysdate,"yyyy-MM-dd"),"YYYY-MM-DD"),"IW") + 6,"yyyy-MM-dd") FROM DUAL;--本周的結束時間(本周周日日期)

    下面是使用存儲過程向數據庫中插入一條數據

    數據格式 : 上報周期 起始時間 結束時間

    xxxx年第xx周 xx.xx xx.xx

    存儲過程如下:

    create or replace procedure PRC_T_SJSB_ZYGYPJG is   v_sbzq_zs varchar2(20);--上報周期周數   v_sbzq_nf varchar2(10); --上報周期年份   v_start varchar2(10);  --起始月份   v_end varchar2(10);  --結束月份   v_sbzq varchar2(20); --上報周期begin   SELECT to_char(sysdate,"iw") into  v_sbzq_zs from dual; --本周是第幾個自然周   SELECT to_char(sysdate,"yyyy") into v_sbzq_nf from dual;   SELECT to_char(TRUNC(TO_DATE(to_char(sysdate,"yyyy-MM-dd"),"yyyy-MM-dd"),"IW"),"yyyy-MM-dd") into v_start  FROM DUAL;--本周的起始時間(本周周一日期)   SELECT to_char(TRUNC(TO_DATE(to_char(sysdate,"yyyy-MM-dd"),"YYYY-MM-DD"),"IW") + 6,"yyyy-MM-dd") into v_end  FROM DUAL;--本周的結束時間(本周周日日期)   v_start:=substr(v_start,6);   v_end :=substr(v_end,6);   v_start :=replace(v_start,"/",".");   v_start :=replace(v_start,"-",".");   v_end :=replace(v_end, "/",".");   v_end :=replace(v_end, "-",".");   v_sbzq :=v_sbzq_nf||"年第"||v_sbzq_zs||"周";   insert into T_SJSB_ZYGYPJG (sbzq,sbzt,startdate,enddate) values(v_sbzq,"0",v_start,v_end);     commit;end PRC_T_SJSB_ZYGYPJG;

    Oracle獲取自然周數

    在Oracle中,Mysql中以及Hive中,SQL實現同樣的功能有時候可能要遵循不同的語法結構,尤其在日期操作方面區別較為明顯。接下來,將Oracle中常用的周期統計梳理出來。

    1. 按天統計

    Oracle中通過to_char()函數來操作日期變量,通過其中的格式參數配置輸出日期的格式。

    格式參數值為’yyyymmdd’時,將日期統一轉換為yyyymmdd(年月日)的方式輸出。

    select to_char(created_time,"yyyymmdd") as day,count(mobile_no)from tablewhere to_char(created_time,"yyyymmdd") >= 20181201group by to_char(created_time,"yyyymmdd")order by min(created_time) asc

    輸出的結果如下所示:

    2. 按自然周統計

    to_char()函數的格式參數值為’iw’時,表示按自然周方式輸出日期在全年中的周數排序值,自然周即日歷上顯示的周排列結果。

    如果只輸出周數,不便于排查數據,所以按自然周進行聚合時,最好能把該自然周的起始日期或結束日期顯示出來,使結果一目了然。

    select to_char(created_time,"iw") as week, min(created_time), count(mobile_no)from tablewhere to_char(created_time,"yyyymmdd") >= 20181201group by to_char(created_time,"iw")order by min(created_time) asc

    結果如下所示,其中week表示周數。通過MIN(created_time)可以展示出每個自然周的起始日期:

    3. 按月統計

    to_char()函數的格式參數值為’yyyymm’時可輸出格式為yyyymm(年月)的月份統計結果。

    select to_char(created_time,"yyyymm") as Month, count(mobile_no)from tablewhere to_char(created_time,"yyyymm") >= 20181201group by to_char(created_time,"yyyymm")

    其結果如下所示:

    4. 按季統計

    to_char()的格式參數值為’q’,可實現按季度輸出統計結果。

    select to_char(created_time,"q") as q,count(mobile_no)from tablewhere to_char(created_time,"yyyymmdd") >= 20180101group by to_char(created_time,"q")order by min(created_time) asc

    其結果如下所示,Q表示季度。

    5. 按年統計

    to_char()函數的參數值為’yyyy’時可以實現按年輸出統計結果。

    select to_char(created_time,"yyyy") as y, count(mobile_no)from tablewhere to_char(created_time,"yyyy") >= 2016group by to_char(created_time,"yyyy")order by y asc

    其輸出結果如下所示:

    總結

    以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。

    標簽: Oracle
    主站蜘蛛池模板: 姐姐真漂亮在线视频中文版 | 欧美最爽乱淫视频播放黑人 | 成人做爰视频www网站 | 欧美性猛交xxxx免费看手交 | 久久巨乳| 最新国产三级 | 国产美女白丝袜精品_a不卡 | 老司机精品影院一区二区三区 | 欧美特黄视频在线观看 | 亚洲国产精品线在线观看 | 久草在线观看福利 | 特级做a爰片毛片免费看 | 在线视频观看国产 | 久久精品免费观看 | 久久91亚洲精品中文字幕 | 免费一级毛片在线播放视频 | 久久视频精品线视频在线网站 | 欧美日韩国产一区二区三区在线观看 | 91原创视频在线观看 | 亚洲国产一区在线精选 | 亚洲国内精品 | 欧美f | 在线观看国产一区二区三区99 | 国产视频久久久 | 久草免费在线视频 | 免费一级大毛片a一观看不卡 | a成人在线| 免费观看一级欧美在线视频 | 波多野结衣在线视频免费观看 | 欧美大片无尺码在线观看 | www.亚洲国产 | 成 人 亚洲 综合天堂 | 一级黄色片aaa | 国产aaaaa一级毛片 | 99久在线精品99re6视频 | 永久免费毛片手机版在线看 | 国产女王s调视频vk 国产女王vk | 亚洲人成在线免费观看 | 九九精品99久久久香蕉 | 欧美成人性毛片免费版 | 国产高清在线视频 |