亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Oracle中的Round和Trunc:

系統 1760 0

一、 Oracle 中的 Round 和Trunc:

如同對數字進行四舍五入和按位截取一樣, Oracle 對時間日期也提供了這兩種功能。但比起對數字進行四舍五入和截取比較復雜:這是因為時間日期是有格式的。下面看看這兩個函數的定義和用途:

ROUND (date [, format])

TRUNC(date [, format])

Round 函數對日期進行“四舍五入”,Trunc函數對日期進行截取。如果我們不指定格式的話, Round 會返回一個最接近date參數的日期,而Trunc函數只會簡單的截取時分秒部分,返回年月日部分。

二、 Round 和Trunc函數示例:

SQL > ? select ?to_char(sysdate,? ' yyyy-mm-dd?hh24:mi:ss ' )?now_date,
??
2 ???????????? to_char( Round (sysdate), ' yyyy-mm-dd?hh24:mi:ss '
)?round_date,
??
3 ???????????? to_char(Trunc(sysdate), ' yyyy-mm-dd?hh24:mi:ss '
)?trunc_date
??
4 ???? from
?dual;

NOW_DATE???????????????????????????????ROUND_DATE?????????????????????????????TRUNC_DATE
-- ------------------------------------?--------------------------------------?----------------------

2008 - 06 - 30 ? 14 : 52 : 13 ???????????????????? 2008 - 07 - 01 ? 00 : 00 : 00 ???????????????????? 2008 - 06 - 30 ? 00 : 00 : 00


這是一個典型的例子,由于我們沒有指定 round 和trunc函數的格式,所以 Oracle 默認采用了按日期時間的格式,該例子中當前的時間是下午 14:52分,已經超過了12:00 AM這個中界線,所以 Round 返回07-01日而非06-30日。而Trunc不管三七二十一直接截取前面日期部分返回。

另外一個值得注意的地方是這兩個函數返回的時分秒都是00:00:00,即一天的開始時間(對于12小時制的返回的是12:00:00 AM)。

三、指定格式的 Round 和Trunc函數示例:

如果我們對 Round 函數和Trunc函數指定了格式,事情就變得有點復雜了,不過核心思想還是不變: Round 是四舍五入,Trunc是截取。舉個例子來說,假如我們以年為格式,則現在 Oracle 的判斷是基于年來判斷,超過一年的一半(即6月30日), Round 函數則返回下一年了,Trunc函數依然返回當前年。

SQL > ? select ?sysdate?"Now?date",
??
2 ???????????? Round (sysdate,? ' yyyy '
)?Round_year,
??
3 ???????????? Trunc(sysdate,? ' yyyy '
)?Trunc_year
??
4 ???? from
?dual;

Now?date???ROUND_YEAR?TRUNC_YEAR
-- --------?----------?----------

30 - 6月? - 08 ? 01 - 1月? - 08 ? 01 - 1月? - 08


關于這兩個函數可用的格式非常多,但日常應用中用得比較多的基本上就這幾個,以 Round 函數為例:

select ? Round (sysdate,? ' Q ' )?Rnd_Q,
????????
Round (sysdate,? ' Month '
)?Rnd_Month,
????????
Round (sysdate,? ' WW '
)?Rnd_Week,
????????
Round (sysdate,? ' W '
)?Rnd_Week_again,
????????
Round (sysdate,? ' DDD '
)?Rnd_day,
????????
Round (sysdate,? ' DD '
)?Rnd_day_again,
????????
Round (sysdate,? ' DAY '
)?Rnd_day_of_week,
????????
Round (sysdate,? ' D '
)?Rnd_day_of_week_again,
????????
Round (sysdate,? ' HH12 '
)?Rnd_hour_12,
????????
Round (sysdate,? ' HH24 '
)?Rnd_hour_24,
????????
Round (sysdate,? ' MI '
)?Rnd_minute
??
from ?dual

?

?

四、用trunc函數處理日期

? 期用例 '2008-11-28 12:59:59'周五 ??

1.沒有fmt部分時

???語句: ? SELECT?? TRUNC(TO_DATE('2008-11-28 12:00:01','YYYY-MM-DD hh24:mi:ss')) FROM?? DUAL;
??????????結果: 2008-11-28? ?

????????

2.得到最當前日期之前的最近的一個周日的日期

???語句: SELECT?? TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'), 'D') FROM?? DUAL;???
???結果: 2008-11-23 周日

???語句: SELECT?? TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'), 'D')+1 FROM?? DUAL;???
???結果: 2008-11-24 周一

?

3.得到最當前日期的所在月份的第一天

???語句: SELECT?? TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'), 'MM') FROM?? DUAL;???
???結果: 2008-11-1

???語句: SELECT?? TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'), 'MM')-1 FROM?? DUAL;?

???結果: 2008-10-31

?

4.得到最當前日期的所在年份的第一天

???語句: SELECT?? TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'), 'Y') FROM?? DUAL;???
???結果: 2008-1-1

???語句: SELECT?? TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'), 'Y')-1 FROM?? DUAL;?

???結果: 2007-12-31

Oracle中的Round和Trunc:


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品一区在线观看你懂的 | 国产尤物福利视频在线观看 | 天天综合网在线 | 欧美在线综合 | 欧美国产精品不卡在线观看 | 亚洲中字幕| 国产一级毛片视频在线! | 成人午夜毛片在线看 | 精品一成人岛国片在线观看 | 成人www视频网站免费观看 | 免费人成在线观看网站品爱网 | 天天干天天干天天操 | 日本道在线视频 | 久久久香蕉视频 | 国产骚熟| 欧美在线观看一区二区三 | 精品视频在线免费观看 | 华人亚洲欧美精品国产 | 色综合欧美 | 国产日韩欧美自拍 | 波多野结衣一区在线观看 | 日韩天堂在线 | 91精品国产免费久久国语麻豆 | 日日做夜夜做 | 日韩在线欧美在线 | 久久国产小视频 | 久久影院视频 | 欧美高清日韩 | 日韩欧美精品有码在线观看 | 国产福利视频深夜福利 | 久草在线在线观看 | 欧美在线成人免费国产 | 中文字幕影院 | 亚洲欧美强伦一区二区另类 | 久久66热re国产毛片基地 | 成人在线视频网址 | 亚洲视频免费在线 | 热99视频| 一区二区三区在线视频播放 | 欧美午夜在线 | 久久亚洲精品一区成人 |