麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle查詢優(yōu)化日期運算實例詳解

2024-08-29 14:00:08
字體:
供稿:網(wǎng)友

 加減日、月、年

在Oracle中,date類型可以直接加減天數(shù),而加減月份要用add_months函數(shù).

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

加減時、分、秒

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

select a.hiredate,    a.hiredate - 5 / 24 / 60 / 60 減5秒,    a.hiredate + 5 / 24 / 60 / 60 加5秒,    a.hiredate - 5 / 24 / 60 減5分鐘,    a.hiredate + 5 / 24 / 60 加5分鐘,    a.hiredate - 5 / 24 減5小時,    a.hiredate + 5 / 24 加5小時 from emp a where rownum <= 1;

如果執(zhí)行時,報錯

Oracle查詢優(yōu)化日期運算,Oracle,日期運算

數(shù)據(jù)庫服務(wù)器端的編碼和客戶端字符集編碼不一致。

我這邊用的數(shù)據(jù)庫西班牙語,不支持中文。

日期間隔之時、分、秒

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 where    a.ename in ('ALLEN', 'WARD')) x; DURATION    間隔小時    間隔分鐘    間隔秒---------- ---------- ---------- ----------     2     48    2880   172800

日期間隔之日、月、年

加減月份用函數(shù) add_months, 而計算月份間隔就要用函數(shù)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

計算一年中周內(nèi)各日期的次數(shù)

問題

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

解決方案

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

  1. 生成一年內(nèi)的所有日期。
  2. 設(shè)置日期格式,得到每個日期對應(yīng)為星期幾。
  3. 計數(shù)周內(nèi)各日期分別有多少個。
with x as (select level lvl  from dual connect by level <=       (add_months(trunc(sysdate, 'y'), 12) - trunc(sysdate, 'y')))select to_char(trunc(sysdate, 'y') + lvl - 1, 'DAY'), count(*) from x group by to_char(trunc(sysdate, 'y') + lvl - 1, 'DAY');

Oracle查詢優(yōu)化日期運算,Oracle,日期運算

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到oracle教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 斗破苍穹在线免费 | 午夜天堂在线视频 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | 一本一道久久久a久久久精品91 | 欧美精品一区二区视频 | a在线视频| 国产88久久久国产精品免费二区 | 天堂福利电影 | 久久久国产精品成人免费 | 国产精品成人av片免费看最爱 | 毛片118极品美女写真 | 黄网站免费入口 | 99最新网址 | 777sesese| 免费一级毛片网站 | 新久草在线视频 | 成年性羞羞视频免费观看 | 国产成年人视频 | 国语自产免费精品视频在 | av电影直播 | 大学生一级毛片在线视频 | 日韩在线激情 | chinese军人gay呻吟 | 美女毛片在线观看 | 国产盼盼私拍福利视频99 | 99精品视频在线观看免费 | 7777网站| 91短视频在线免费观看 | 国产精品99久久久久久久 | 99精品视频免费看 | 黄色网址在线免费播放 | 欧美黄色大片免费观看 | 精品国产一级毛片 | 国产亚洲高清视频 | 天堂成人一区二区三区 | 亚洲成人精品一区二区 | 免费高清一级欧美片在线观看 | 国产成人在线综合 | 在线看免费观看日本 | 午夜视频在线观看91 | 精选久久|