返回處理后的數據,不同于round()(對數值進行四舍五入處理),該函數不對指定小數前或后的數值部分進行舍入處理。
語法:trunc(number[,decimals])
其中,number為待做處理的數值,decimals為需要保留小數點后面的位數,即精度,默認值為0,此時將截去所有的小數部分。
?
數值處理:
select trunc(123.45) as a,trunc(123.456,2) as b, trunc(123.45,-1) as c from dual ;
?
從以上例子可以看出,第二個參數可為負值,表示為截取小數點左邊指定位數后面的部分,即皆為0位,與為整數相似,為1時取十分位,為-1則取到十位,以此類推。當然有一種情況是這樣的:trunc(123.45,-5),可以測返回:
select trunc(123.4,-5) from dual;
?
?
日期處理:此時函數返回指定元素格式截去一部分日期值。
語法:trunc(date[,fmt])
Date 為必要參數,是輸入的一個日期。Fmt參數可以忽略,是日期格式,用以指定的元素格式來截去輸入的日期值,默認為0,此時截去最近的日期。
用法及舉例可參考如下:
?
?附:
在當前日期加一個月,加一天,加一小時,加一分鐘,加一秒的方法:
oracle中有一個add_mouth()函數,可直接加月份:
select sysdate,add_months(sysdate ,1) from dual;
加一天,加一小時,加一分鐘,加一秒:
select
sysdate +1 加一天 ,
sysdate+1/24 加1小時,
sysdate+1/(24*60) as 加1分鐘,
sysdate+1/(24*60*60) as 加1秒鐘
from dual
?
?
---------
本系列為最近一段時間學習oracle的學習筆記,記錄于此作為自身回顧,其中有的來的網絡,有的來的書籍,但時間已久,記不清哪些是引用,如是轉載但沒標注出,特意致歉。
?