真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle查詢優(yōu)化日期運(yùn)算的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下Oracle查詢優(yōu)化日期運(yùn)算的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

宜良網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),宜良網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為宜良上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的宜良做網(wǎng)站的公司定做!

 加減日、月、年

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

select a.hiredate 雇用日期,
    a.hiredate + 5 加5天,
    a.hiredate - 5 減5天,
    add_months(hiredate, 5) 加5個(gè)月,
    add_months(hiredate, -5) 減5個(gè)月,
    add_months(hiredate, 5 * 12) 加5年,
    add_months(hiredate, -5 * 12) 減5年
 from emp a where rownum <=1;


雇用日期 加5天 減5天 加5個(gè)月 減5個(gè)月 加5年 減5年
----------- ----------- ----------- ----------- ----------- ----------- -----------
1980-12-17 1980-12-22 1980-12-12 1981-05-17 1980-07-17 1985-12-17 1975-12-17

加減時(shí)、分、秒

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

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小時(shí),
    a.hiredate + 5 / 24 加5小時(shí)
 from emp a
 where rownum <= 1;

如果執(zhí)行時(shí),報(bào)錯(cuò)

Oracle查詢優(yōu)化日期運(yùn)算的示例分析

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

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

日期間隔之時(shí)、分、秒

SQL> select duration,
    duration * 24 間隔小時(shí),
    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    間隔小時(shí)    間隔分鐘    間隔秒
---------- ---------- ---------- ----------
     2     48    2880   172800

日期間隔之日、月、年

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

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

問題

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

解決方案

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

  1. 生成一年內(nèi)的所有日期。

  2. 設(shè)置日期格式,得到每個(gè)日期對應(yīng)為星期幾。

  3. 計(jì)數(shù)周內(nèi)各日期分別有多少個(gè)。

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)化日期運(yùn)算的示例分析

以上是“Oracle查詢優(yōu)化日期運(yùn)算的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站欄目:Oracle查詢優(yōu)化日期運(yùn)算的示例分析-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://weahome.cn/article/dssogj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部