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