round函式與trunc函式的使用方法
之前的一些博文中已經提及過這兩個函式的用法,但之前的值使用了數字型別進行的測試。
在這篇博文裡,算是這兩個函式使用的補充吧。因為近段時間裡常用到了這兩個函式,其中省略了
函式中的部分引數,但同樣可以使用函式。以下是測試的過程:
----round函式與trunc函式的使用方法:
sys@PROD>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
---函式的結構:
ROUND(x,y):以小數點後Y位(或Y日期格式)四捨五入取X的值。
TRUNC(x,y):以小數點後Y位(或Y日期格式)截斷取X的值。
#兩個函式同時適用於處理日期型別與數字型別的資料。
---檢視當前系統的日期與時間:
sys@PROD>select sysdate from dual;
SYSDATE
-------------------
2016-12-13 11:26:37
---適用兩個函式檢視省略函式中Y引數值的日期:
sys@PROD>select trunc(sysdate),round(sysdate) from dual;
TRUNC(SYSDATE) ROUND(SYSDATE)
------------------- -------------------
2016-12-13 00:00:00 2016-12-13 00:00:00
sys@PROD>select round(sysdate,'dd'),trunc(sysdate,'dd') from dual;
ROUND(SYSDATE,'DD') TRUNC(SYSDATE,'DD')
------------------- -------------------
2016-12-13 00:00:00 2016-12-13 00:00:00
#當函式省略Y引數的時候,數字型別預設為Y=0,可省略;日期型別預設為Y=’dd’,可省略。
---使用兩個函式檢視省略函式中Y引數值的某個數值:
sys@PROD>select round(3.14159),trunc(3.14159) from dual;
ROUND(3.14159) TRUNC(3.14159)
-------------- --------------
3 3
#round函式取得該值為3,因為個位數後面為1,四捨五入取0.
---使用兩個函式檢視以不同格式取捨時指定的日期與時間:
--round函式:
sys@PROD>select round(to_date('2016-12-13 13:45:55','yyyy-mm-dd hh24:mi:ss')),
2 round(to_date('2016-12-13 13:45:55','yyyy-mm-dd hh24:mi:ss'),'mm'),
3 round(to_date('2016-12-13 13:45:55','yyyy-mm-dd hh24:mi:ss'),'yyyy')
4 from dual;
ROUND(TO_DATE('2016 ROUND(TO_DATE('2016 ROUND(TO_DATE('2016
------------------- ------------------- -------------------
2016-12-14 00:00:00 2016-12-01 00:00:00 2017-01-01 00:00:00
sys@PROD>select round(to_date('2016-12-16 13:45:55','yyyy-mm-dd hh24:mi:ss'),'mm') from dual;
ROUND(TO_DATE('2016
-------------------
2017-01-01 00:00:00
--trunc函式:
sys@PROD>select trunc(to_date('2016-12-16 13:45:55','yyyy-mm-dd hh24:mi:ss')),
2 trunc(to_date('2016-12-16 13:45:55','yyyy-mm-dd hh24:mi:ss'),'mm'),
3 trunc(to_date('2016-12-16 13:45:55','yyyy-mm-dd hh24:mi:ss'),'yyyy')
4 from dual;
TRUNC(TO_DATE('2016 TRUNC(TO_DATE('2016 TRUNC(TO_DATE('2016
------------------- ------------------- -------------------
2016-12-16 00:00:00 2016-12-01 00:00:00 2016-01-01 00:00:00
sys@PROD>
---使用兩個函式檢視以不同位數取捨時指定的數值:
--round函式:
sys@PROD>select round(36.64159),round(36.64159,2),round(36.64159,-1) from dual;
ROUND(36.64159) ROUND(36.64159,2) ROUND(36.64159,-1)
--------------- ----------------- ------------------
37 36.64 40
--trunc函式:
sys@PROD>select trunc(36.64159),trunc(36.64159,2),trunc(36.64159,-1) from dual;
TRUNC(36.64159) TRUNC(36.64159,2) TRUNC(36.64159,-1)
--------------- ----------------- ------------------
36 36.64 30
--我們從以上的測試看出:總的來說,round函式是嚴格遵循“四捨五入”法則取捨,而trunc函式則沒有
嚴格遵循。trunc更利索地擷取,從引數值中確定參考位置,然後就從該位置之後的位數全部置零(對日期型別,全部以月份或日的首個月份或日)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2130379/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Oracle SQL】months_between與trunc函式OracleSQL函式
- mysql——ROUND與TRUNCATE函式之比較MySql函式
- C語言函式指標與回撥函式使用方法C語言函式指標
- 友元函式的使用方法函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- 函式外與函式內的變數函式變數
- Python函式與lambda 表示式(匿名函式)Python函式
- Java script 中的函式使用方法Java函式
- Sql中SYSDATE函式的使用方法SQL函式
- Python中zip函式的使用方法Python函式
- Django中 render() 函式的使用方法Django函式
- webgl內建函式--幾何函式與矩陣函式Web函式矩陣
- webgl內建函式--向量函式與紋理查詢函式Web函式
- 建構函式與普通函式的區別函式
- 箭頭函式與普通函式的區別函式
- 何時使用函式表示式與函式宣告函式
- Oracle分析函式與視窗函式Oracle函式
- 建構函式與解構函式函式
- 函式節流與函式防抖函式
- 回撥函式 與 函式閉包函式
- JavaScript的迭代函式與迭代函式的實現JavaScript函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- iOS中round/ceil/floorf函式的應用iOS函式
- fill函式與memset函式的區別(c++)函式C++
- Python列表中set函式的使用方法!Python函式
- Unity&Shader常用函式的使用方法Unity函式
- 普通函式與函式模板呼叫規則函式
- 箭頭函式與普通函式區別函式
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript
- main函式的入口函式AI函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- 函式宣告與函式表示式有什麼區別?函式
- echo與函式函式
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- 關於建構函式與解構函式的分享函式
- C++中函式指標與函式物件C++函式指標物件
- 15.3 極限函式與和函式性質函式
- 普通函式與函式模板呼叫規則2函式