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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- trunc與round函式函式
- trunc函式函式
- Oracle Trunc函式Oracle函式
- Oracle trunc()函式的用法Oracle函式
- 【Oracle SQL】months_between與trunc函式OracleSQL函式
- 【TRUNC】使用TRUNC函式完成對時間的擷取函式
- mysql——ROUND與TRUNCATE函式之比較MySql函式
- C語言函式指標與回撥函式使用方法C語言函式指標
- ROUND(x,y)與TRUNC(x,y)函式中y引數值為省略、空值與null的區別函式Null
- 【函式】Oracle中聚合函式rank()使用方法函式Oracle
- php取整函式ceil,floor,round,intval函式的區別PHP函式
- 【函式】Oracle EXTRACT()函式與to_char() 函式函式Oracle
- 利用TRUNC函式定製JOB的時間間隔函式
- fork函式與vfork函式函式
- 友元函式的使用方法函式
- 聚合函式與數字函式函式
- 宣告與函式、函式指標函式指標
- 函式外與函式內的變數函式變數
- 簡單的printf函式與scnaf函式函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- Java script 中的函式使用方法Java函式
- Django中 render() 函式的使用方法Django函式
- js中split函式的使用方法JS函式
- webgl內建函式--幾何函式與矩陣函式Web函式矩陣
- webgl內建函式--向量函式與紋理查詢函式Web函式
- ORACLE單行函式與多行函式之七:多行函式之分組函式示例Oracle函式
- Python函式與lambda 表示式(匿名函式)Python函式
- 何時使用函式表示式與函式宣告函式
- 建構函式與普通函式的區別函式
- 箭頭函式與普通函式的區別函式
- append()函式與html()函式的區別APP函式HTML
- 函式過載與函式模板的區別函式
- 函式節流與函式防抖函式
- 回撥函式 與 函式閉包函式
- Oracle分析函式與視窗函式Oracle函式
- 建構函式與解構函式函式
- 巧用trunc函式,獲取某日期範圍內的資料函式
- JavaScript的迭代函式與迭代函式的實現JavaScript函式