關於資料庫ceil()函式,floor()函式,round()函式和trunc()函式
阿新 • • 發佈:2019-01-06
1,trunc()函式
trunc返回處理後的數值,其工作機制與round()函式極為類似,只是該函式不對指定小數前或後的部分做相應的舍入選擇處理,而統統擷取.
其具體的語法格式:
TRUNC(number[,decimals])
其中: number 待處理的數值
decimals 指明需保留小數點後面的位數。可選項,忽略它則擷取所有的小數部分。
select trunc(123.11)from dual;
select trunc(123.11,2)from dual;
select trunc(123.11,-1)from dual;
注意:第二個引數可以為負數,表示小數點左邊指定位數後面的部分截去,即均以0。與取整類似,比如引數為1即取到十分位,如果為-1,則取整到十位,以此類推;如果所設定的引數為負數,且負數的位數大於或等於整數的位元組數的話,則返回為0。如:trunc(5.122,-3)=0
。
2,round()函式(四捨五入)
傳回一個數值,該數值是按照指定的小數位元資料進行四捨五入運算的結果。
格式如下:
ROUND(number,[decimal_places])
引數解釋:
number:欲處理的數值
decimal_places:四捨五入,小數取幾位(預設為0)
select round(123.456,0) from dual; //123
select round(123.456,1) from dual; //123.5
select round(123.456,2) from dual; //123.46
3,ceil()函式和floor()函式
ceil(n) 取大於等於數值n的最小整數;
floor(n) 取小於等於數值n的最小整數;
對於這幾個函式應用:
對於員工,查詢其加入公司的天數。
select floor(sysdate-hiredate) "入職天數",ename from emp;
//或者
select trunc(sysdate-hiredate)"入職天數",ename from emp;