日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle查询优化-07日期运算

發布時間:2025/3/21 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle查询优化-07日期运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

7.1 加減日、月、年

在oracle中,date類型可以直接加減天數,而加減月份要用add_months函數.

select a.hiredate 雇用日期,a.hiredate + 5 加5天,a.hiredate - 5 減5天,add_months(hiredate, 5) 加5個月,add_months(hiredate, -5) 減5個月,add_months(hiredate, 5 * 12) 加5年,add_months(hiredate, -5 * 12) 減5年from emp a where rownum <=1;雇用日期 加5天 減5天 加5個月 減5個月 加5年 減5年 ----------- ----------- ----------- ----------- ----------- ----------- ----------- 1980-12-17 1980-12-22 1980-12-12 1981-05-17 1980-07-17 1985-12-17 1975-12-17

7.2 加減時、分、秒

上面講過,date可以直接加減天數,那么1/24就是一小時,分鐘與秒的加減類同。

select a.hiredate,a.hiredate - 5 / 24 / 60 / 605秒,a.hiredate + 5 / 24 / 60 / 605秒,a.hiredate - 5 / 24 / 605分鐘,a.hiredate + 5 / 24 / 605分鐘,a.hiredate - 5 / 245小時,a.hiredate + 5 / 245小時from emp awhere rownum <= 1;

如果執行時,報錯

數據庫服務器端的編碼和客戶端字符集編碼不一致。

我這邊用的數據庫西班牙語,不支持中文。


7.3 日期間隔之時、分、秒

SQL> select duration,duration * 24 間隔小時,duration * 24 * 60 間隔分鐘,duration * 24 * 60 * 60 間隔秒from (select (max(a.hiredate) - min(a.hiredate)) as duration from emp a wherea.ename in ('ALLEN', 'WARD')) x;DURATION 間隔小時 間隔分鐘 間隔秒 ---------- ---------- ---------- ----------2 48 2880 172800

7.4 日期間隔之日、月、年

加減月份用函數 add_months, 而計算月份間隔就要用函數months_between

select max_hd - min_hd 間隔天,months_between(max_hd, min_hd) 間隔月,months_between(max_hd, min_hd) /12 間隔年from (select min(hiredate) min_hd, max(hiredate) max_hd from emp) x;間隔天 間隔月 間隔年 ---------- ---------- ----------2348 77.1935483 6.43279569

7.5計算一年中周內各日期的次數

問題

計算一年中周內各日期(星期日、星期一 ……星期六)的次數。

解決方案

要計算一年中周內各日期分別有多少個,必須:

  • 生成一年內的所有日期。

  • 設置日期格式,得到每個日期對應為星期幾。

  • 計數周內各日期分別有多少個。

  • with x as(select level lvlfrom dualconnect by level <=(add_months(trunc(sysdate, 'y'), 12) - trunc(sysdate, 'y'))) select to_char(trunc(sysdate, 'y') + lvl - 1, 'DAY'), count(*)from xgroup by to_char(trunc(sysdate, 'y') + lvl - 1, 'DAY');

    總結

    以上是生活随笔為你收集整理的Oracle查询优化-07日期运算的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。