oracle函數trunc的使用

一、日期比較時精確到日,可使用 TRUNC(sysdate,'dd')函數。
函數支持格式有:yyyy MM  dd  hh Mi
能夠用 select TRUNC(sysdate,'yyyy') from dual  看看結果是什麼。

不要按下面的方式比較日期:
TO_DATE(TO_CHAR(LOGTIME,'YYYY-MM-DD'), 'YYYY-MM-DD') < TO_DATE(TO_CHAR(SYSDATE - $DAYNUM$,'YYYY-MM-DD'), 'YYYY-MM-DD')函數

 

二、trunc(d1[,c1])  返回日期d1所在期間(參數c1)的第一天日期date

d1日期型,c1爲字符型(參數),c1默認爲j(即當前日期)select

c1對應的參數表:di

本週星期日:day或dy或d (每週順序:日,一,二,三,四,五,六)時間

本月初日期:month或mon或mm或rm字符

本季日期:q數字

本年初日期:syear或year或yyyy或yyy或yy或y(多個y表示精度) 參數

本世紀初日期:cc或scc日期

【返回】:日期
select sysdate from dual --當時日期

select trunc(sysdate) from dual

select trunc(sysdate ,'DD') from dual --今天日期

select trunc(sysdate,'d')+7 from dual --本週星期日

select trunc(sysdate,'dy')+7 from dual  --本週星期日

select trunc(sysdate,'day')+7 from dual --本週星期日

select trunc(sysdate,'q') from dual--本季開始日期

select trunc(sysdate,'month') from dual --本月開始日期

select trunc(sysdate ,'mm') from dual --本月開始日期

select trunc(sysdate,'year') from dual  --本年開始日期

select trunc(sysdate ,'yyyy') from dual --本年開始日期

select trunc(sysdate ,'HH24') from dual --本小時開始時間

select trunc(sysdate ,'MI') from dual --本分鐘開始時間

select trunc(sysdate ,'CC') from dual --本世紀開始時間

select trunc(LAST_DAY(sysdate),'dd') from dual --本月最後一天

 

三、round(10.2356,2)函數能夠對數字按指定保留小數位數四捨五入,這個函數還能夠對日期四捨五入
select round(sysdate,'yyyy') from dual 四捨五入到年

select round(sysdate,'mm') from dual 四捨五入到月

select round(sysdate,'dd') from dual 四捨五入到日

select round(sysdate,'hh') from dual 四捨五入到小時

select round(sysdate,'mi') from dual 四捨五入到分鐘

 

四、TRUNC還能夠對number類型使用,TRUNC(89.985,2)=89.98TRUNC(89.985)=89TRUNC(89.985,-1)=80

相關文章
相關標籤/搜索