ROUND(x,y)與TRUNC(x,y)函式中y引數值為省略、空值與null的區別
----ROUND(x,y)與TRUNC(x,y)函式中y引數值為省略、空值與null的區別:
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 round(sysdate),round(sysdate,'dd'),
2 trunc(sysdate),trunc(sysdate,'dd')
3 from dual;
ROUND(SYSDATE) ROUND(SYSDATE,'DD') TRUNC(SYSDATE) TRUNC(SYSDATE,'DD')
------------------- ------------------- ------------------- -------------------
2016-12-14 00:00:00 2016-12-14 00:00:00 2016-12-13 00:00:00 2016-12-13 00:00:00
---使用函式查詢數字資料型別:
sys@PROD>select round(3,14159),round(3.14159,0),
2 trunc(3,14159),trunc(3.14159,0)
3 from dual;
ROUND(3,14159) ROUND(3.14159,0) TRUNC(3,14159) TRUNC(3.14159,0)
-------------- ---------------- -------------- ----------------
3 3 3 3
#透過這一組查詢,可以看到省略y值得情況下,相當於數字型別的以個位數四捨五入,
相當於日期型別的以“dd”格式取捨。
---將函式中的y引數值設定為’’ :
sys@PROD>select round(sysdate,''),round(3.14159,''),
2 trunc(sysdate,''),trunc(3.14159,'')
3 from dual;
ROUND(SYSDATE,'') ROUND(3.14159,'') TRUNC(SYSDATE,'') TRUNC(3.14159,'')
------------------- ----------------- ------------------- -----------------
#均為空值。
---將函式中的y引數值設定為null :
sys@PROD>select round(sysdate,null), round(3.14159,null),
2 trunc(sysdate,null),trunc(3.14159,null)
3 from dual;
ROUND(SYSDATE,NULL) ROUND(3.14159,NULL) TRUNC(SYSDATE,NULL) TRUNC(3.14159,NULL)
------------------- ------------------- ------------------- -------------------
#均為空值。
---擴充查詢:
--以世紀為取捨單位:
sys@PROD>select round(sysdate,'cc') from dual;
ROUND(SYSDATE,'CC')
-------------------
2001-01-01 00:00:00
--以季度為取捨單位:
sys@PROD>select round(to_date('2016-08-16 14:31:48','yyyy-mm-dd hh24:mi:ss'),'q') from dual;
ROUND(TO_DATE('2016
-------------------
2016-10-01 00:00:00
--以任意字元為取捨依據:
sys@PROD>select round(3.14159,'/') from dual;
select round(3.14159,'/') from dual
*
ERROR at line 1:
ORA-01722: invalid number
#報錯,不能識別這種資料型別。
--以小數點後222位取捨:
sys@PROD>select round(3.14159,222) from dual;
ROUND(3.14159,222)
------------------
3.14159
--以小數點前10位取捨:
sys@PROD>select round(333.14159,-10) from dual;
ROUND(333.14159,-10)
--------------------
0
--總結來說:
ROUND(x,y):以小數點後Y位(或Y日期格式)四捨五入取X的值。
TRUNC(x,y):以小數點後Y位(或Y日期格式)截斷取X的值。
ROUND(x,y)中的y引數,對於數字型別,正數為小數點右邊y位,負數為小數點左邊y位,進行四捨五入;
對於日期型別,是以y為取捨單位進行四捨五入;
TRUNC(x,y)中的y引數,對於數字型別,正數為小數點右邊y位,負數為小數點左邊y位,進行擷取取值;
對於日期型別,是以y為取捨單位進行擷取取值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2130393/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python中x=y與x==y的區別。(比較簡單)Python
- Snapkit,呼叫layoutIfNeeded後x、y為負數。APK
- python函式每日一講 - cmp(x,y)Python函式
- (函式分治法)實現pow函式(x的y次方冪)函式
- CSS3 scale(x,y)CSSS3
- CSS3 translate(x,y)CSSS3
- vivo X21和vivo Y83區別對比 vivo Y83和X21哪個好?
- OPPO A7X和vivo Y97區別對比 vivo Y97和OPPO A7X哪個好?
- EXP匯出引數compress=y(n)的區別
- trunc與round函式函式
- clientX/Y pageX/Y offsetX/Y layerX/Y screenX/Y clientHeight innerWidth...client
- CSS translate3d(x,y,z)CSS3D
- X+Y+Z=2的黑洞恆等式恆等式
- 需求分析與Y模型模型
- CSS rotate3d(x,y,z,angle)CSS3D
- X+Y+Z+T=3的黑洞恆等式恆等式
- 1152:最大數max(x,y,z)(C C++)C++
- 實現一個函式,對給定平面任意兩點座標(x 1 ,y 1 )和(x 2 ,y 2 ),求這兩點之間的距離函式
- round函式與trunc函式的使用方法函式
- X,Y,Z任意的三項齊次恆等式恆等式
- CSS3 translate3d(x,y,z)CSSS33D
- CSS3 scale3d(x,y,z)CSSS33D
- Connection to x as user y failed: ERROR: Wrong password for userAIError
- mysql中null與“空值”的坑MySqlNull
- js中根據x,y 座標模擬點選事件JS事件
- 問題:兩個物件值相同(x.equals(y) == true),但是可能存在hashCode不同嗎?物件
- 為什麼遊戲要提供視角X\Y軸反轉功能?遊戲
- 『指數a,b無上下限:X+Y=1的恆等式』恆等式
- X,Y,Z,T任意的四項齊次恆等式恆等式
- CSS3 rotate3d(x,y,z,angle)CSSS33D
- OPPO A1與vivo Y85區別對比評測 OPPO A1和vivo Y85哪個好?
- 【匯入匯出】compress 值為y對匯入物件所佔空間的影響物件
- 小議IMP操作引數COMMIT=Y(三)MIT
- 小議IMP操作引數COMMIT=Y(二)MIT
- 小議IMP操作引數COMMIT=Y(一)MIT
- importvg 一定要帶引數 -y vgname hdiksnameImport
- X,Y,Z,T,V任意的五項齊次恆等式恆等式
- 『指數無上下限X,Y任意的2項恆等式(3)』恆等式