首頁  >  文章  >  資料庫  >  詳解Oracle常用函數Trunc

詳解Oracle常用函數Trunc

小云云
小云云原創
2017-12-11 13:27:324046瀏覽


本文主要介紹了Oracle常用函數Trunc及Trunc函數用法講解,需要的朋友可以參考下,希望能幫助大家。

相關mysql影片教學推薦:《mysql教學

#1. Trunc( date)

#trunc 以指定的元素截取日期類型的資料

語法:trunc(date,[ format])

date– 日期格式的值

#format –日期格式如'mm','yyyy'等將date從指定日期格式截取

例如:

trunc(sysdate,'yyyy')=‘01-01月-17'(sysdate='21-11月-17'); --返回今年的第一天
trunc(sysdate,'mm')=‘01-11月-17'; --返回本月第一天
trunc(sysdate,'d')=‘19-11月-17'; --(今天星期二,一周从周日开始计算)返回本周第一天

2 Trunc(number,[number1])

trunc(number) 和round( ) 相似,只是不對截去的第一位數字不進行四捨五入

如:

round(89.125,2)=89.13
trunc(89.125,2)=89.12
trunc(89.125,-1)=80

number1 的預設值是0。

下面介紹下Oracle trunc()函數的用法

1.TRUNC(for dates)

  TRUNC函數為指定元素而截去的日期值。

  其特定的語法格式如下:

  TRUNC(date[,fmt])

  其中:

  date 一個日期值

  fmt 日期格式,該日期將由指定的元素格式所截去。忽略它則由最近的日期截去

  下面是該函數的使用情況:

  TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon -yyyy hh:mi am')

  ='24-Nov-1999 12:00:00 am'

  TRUNC(TO_DATE('24-Nov-1999 08:37 pm', 'dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am'

  trunc(sysdate,'yyyy') --返回當年第一天。

  trunc(sysdate,'mm') --返回當月第一天。

  trunc(sysdate,'d') --傳回目前星期的第一天。

  trunc(sysdate,'dd')--傳回目前年月日

  2.TRUNC(for number)

  TRUNC函數傳回處理後的數值,其工作機制與ROUND函數極為類似,只是函數不會對指定小數前或後的部分做對應舍入選擇處理,而統統截去。

  其具體的語法格式如下

  TRUNC(number[,decimals])

  其中:

  number 待做對的數值

  decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分

  下面是該函數的使用情況:

  TRUNC(89.985,2)=89.98

  TRUNC(89.985) =89

  TRUNC(89.985,-1)=80

  注意:第二個參數可以為負數,表示為小數點左邊指定位數後面的部分截去,即均以0記。與取整類似,例如參數為1即取整到十分位,如果是-1,則是取整到十位,以此類推。

--Oracle trunc()函數的用法


#
/**************日期********************/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, 'mm')  from  dual --2011-3-1  返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2011-1-1    返回当年第一天
4.select trunc(sysdate,'dd') from dual --2011-3-18  返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2011-1-1  返回当年第一天
6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual  --2011-3-18 14:00:00  当前时间为14:41  
8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00  TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC(number,num_digits) 
Number 需要截尾取整的数字。 
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120

相信大家對Oracle常用函數Trunc已經了解了,感覺動手自己嘗試。

相關建議:

Oracle 自訂split 函數實例詳解

Oracle 中table 函數的應用淺層析

Oracle minus用法詳解及應用實例

以上是詳解Oracle常用函數Trunc的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn