oracle trunc 函式的用法

2021-05-22 01:47:13 字數 1253 閱讀 3809

trunc()函式分兩種

1.trunc(for dates)

trunc函式為指定元素而截去的日期值。

其具體的語法格式如下:

trunc(date[,fmt])    

其中:date 乙個日期值

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

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

select trunc(sysdate,'mm') from dual --2010-3-1 當月第一天

select trunc(sysdate,'yy') from dual --2010-1-1 當年第一天

select trunc(sysdate,'dd') from dual --2010-3-24 當天

select trunc(sysdate,'day') from dual --2010-3-21 本週第一天(每週第一天從星期日算起)

select trunc(sysdate) from dual --2010-3-24 當天.  好象跟 trunc(sysdate,'dd') 沒什麼分別,需觀察測試

比較下面三個的不同:

select last_day(sysdate)+2 from dual; --當前:2010-3-31 17:00:46,結果值為:2010-4-2 17:00:46

select (last_day(sysdate)+2)+10/24 from dual; --2010-4-3 3:00:46

select trunc(last_day(sysdate)+2)+10/24 from dual --2010-4-2 10:00:00

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記。

oracle trunc 函式的用法

關於trunc函式的format,自己現在有點體會,format為day時,只精確到天,而不管幾年幾月只要是符合的day就可以了,要想確定一年中的某月的某一天就要用trunc date,dd 通俗的說吧,format為年時,精確到 年 為月時,精確到 年,月 不管哪年,只要是相同的月和哪天 為日時,...

Oracle trunc 函式的用法

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 s...

Oracle trunc 函式的用法

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 s...