1. 程式人生 > >關於資料庫ceil()函式,floor()函式,round()函式和trunc()函式

關於資料庫ceil()函式,floor()函式,round()函式和trunc()函式

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;