1、trunc函數
處理數值,對給定數值進行截取處理,不會對給定數值做四捨五入處理。
語法格式:
TRUNC(number[,decimals])--number 待處理的數據,decimals指明需保留小數點後的位數,默認爲0
如果參數爲負數,則小數點往前取位數,如果負數位數大於或等於待處理數據位數,則返回0.
selecttrunc(123.456)from dual;--123
selecttrunc(123.456,2)from dual;--123.45
selecttrunc(123.456,-1)from dual;--120
selecttrunc(123.456,-3)from dual;--0
處理日期,trunc函數以指定格式截取日期值。
語法格式:
TRUNC(date,[fmt])--date爲日期值,fmt可選參數,指定日期截取方式,默認截取最近日期。
selecttrunc(sysdate,'YY')from dual;--返回當年第一天,2018-1-1
selecttrunc(sysdate,'YYYY')from dual;--返回當年第一天,2018-1-1
selecttrunc(sysdate,'MM')from dual;--返回當月第一天,2018-2-1
selecttrunc(sysdate,'D')from dual;--返回本週第一天,2018-2-4
selecttrunc(sysdate,'DD')from dual;--返回當前年月日,2018-2-6
2、round 函數
按照給定條件對數值進行四捨五入處理。
語法格式:
ROUND(number,[,decimals])--number,待處理的數值,decimals,小數點後保留的位數,
爲負,則從小數點往前截取。與trunc函數不同的是,round函數需要四捨五入。
selectround(123.456)from dual;--123
selectround(123.456,1)from dual;--123.5
selectround(123.456,-1)from dual;--120
3、ceil和floor函數
ceil函數與floor函數對給定數值取整。
語法格式:
ceil(number)--取大於、等於數值number的最小整數
floor(number) --取小於、等於數值number的最大整數
selectfloor(123.456)from dual;--123
selectceil(123.456)fromdual;--124
selectceil(-123.456)fromdual;---123
selectfloor(-123.456)fromdual;---124
selectceil((To_date('2018-2-6
16:50:55', 'yyyy-mm-dd hh24-mi-ss') -
To_date('2018-2-6 14:55:24', 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60) 秒數
from dual--6932
如果是24*60則精確到分鐘。ceil(6932)->116'