TRUNC就是取整的意思,一般需要帶一個參數,代表要精确到的位數。
它可以用在日期和數值涼個場合。
[b]1.TRUNC for dates(日期)[/b]
TRUNC函數傳回以指定元素格式截去一部分的日期值。
其具體的文法格式如下:
TRUNC(date[,fmt])
其中:
date 為必要參數,是輸入的一個日期值
fmt 參數可忽略,是日期格式,用以指定的元素格式來截去輸入的日期值。忽略它則由最近的日期截去
下面是該函數的使用情況:
按小時取整:select to_char(trunc(sysdate,'hh'),'yyyy-mon-dd hh24:mi:ss') from dual;
按年取整(傳回本年度第一天):select to_char(trunc(sysdate,'yyyy'),'yyyy-mon-dd hh24:mi:ss') from dual;
按天取整:select to_char(trunc(sysdate,'dd'),'yyyy-mon-dd hh24:mi:ss') from dual;
select to_char(trunc(sysdate),'yyyy-mon-dd hh24:mi:ss') from dual;
按星期取整(傳回本周第一天(周日)):select to_char(trunc(sysdate,'d'),'yyyy-mon-dd hh24:mi:ss') from dual;
fmt值參考如下:
Unit Valid format parameters
Year SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y
ISO Year IYYY, IY, I
Quarter Q
Month MONTH, MON, MM, RM
Week WW
IW IW
W W
Day DDD, DD, J
Start day of the week DAY, DY, D
Hour HH, HH12, HH24
Minute MI
[b]2.TRUNC for number(數字)[/b]
TRUNC函數傳回處理後的數值,其工作機制與ROUND函數極為類似,隻是該函數不對指定小數前或後的部分做相應舍入選擇處理,而統統截去。
其具體的文法格式如下
TRUNC(number[,decimals])
其中:
number 待做截取處理的數值
decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分。
下面是該函數的使用情況:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89 (即取整)
TRUNC(89.985,-1)=80
TRUNC(-89.985,1)=-89.9
注意:第二個參數可以為負數,表示為小數點左邊指定位數後面的部分截去,即均以0記。與取整類似,比如參數為1即取整到十分位,如果是-1,則是取整到十位,以此類推;如果所設定的參數為負數,且負數的位數大于整數的位元組數的話,則傳回為0。如:TRUNC(89.985,-3)=0。