oracle中最常用的日期型別為date和timestamp;
date:
date型別包含了以下資訊:
century:世紀
year:年份
month:月份
day:天數
hour:小時
minute:分鐘
second:秒
oracle日期的格式為:yyyy-mm-dd hh24:mi:ss.
select sysdate from dual;//返回當前系統時間
為日期加上特定月份add_months(日期,值)函式:
select add_months(sysdate,1) from dual;//在當前系統時間加乙個月,當值為負的時候就是減乙個月。此處返回2013-11-23 00:00:00;
select add_months(to_date('2013-10-20','yyyy-mm-dd'),-1) from dual;//返回的就是2013-09-20 00:00:00
返回特定日期所在月的最後一天last_day(日期)函式:
select last_day(to_date('2010-02-28','yyyy-mm-dd')) from dual;//此處返回2010-02-28
select last_day(to_date('2000-02-28','yyyy-mm-dd')) from dual;//此處返回2010-02-29
//oracle會自動判別年份是否為閏年。並返回這個月的最後一天。
返回兩個日期所差的月數months_between(日期,日期):
select months_between(to_date('2010-02-28','yyyy-mm-dd'),to_date('2013-10-23','yyyy-mm-dd')) from dual;//此處返回-43.838..可以看出是用前面的日期減去後面的日期。
返回特定日期之後一周內的日期next_day(日期,數值):
//此處數值1為星期天,2為星期一,以此類推。
select next_day(to_date('2013-10-23','yyyy-mm-dd'),2) from dual;//此處返回2013-10-28,因為今天是星期三,那麼下個星期一就是28號。
擷取日期函式trunc(日期,擷取格式):
//trunc同樣可以擷取數字,不進行四捨五入。在number型別處理中有。
select trunc(sysdate,'dd') from dual;//此處返回的是2013-10-23,可見,擷取格式是指定要擷取到哪個位置。
select trunc(sysdate,'mm') from dual;//此處返回的是2013-10-01,返回的是要擷取月的第一天,同理,如果擷取到年,會顯示本年的第一月的第一天。若擷取到分或以後,其餘歸零。
返回日期某個域extract(域 from 日期):
select extract(month from sysdate ) from dual;//此處返回的是10。
將日期轉化為字串to_char(日期,格式):
select to_char(sysdate,'yyyy-mm-dd') from dual;//此處返回2013-10-23
select to_char(sysdate,'yy-mon-dd day') from dual;//此處返回13-10月-23 星期三
具體格式如下表:
Oracle日期型及處理方法講解
sysdate 獲取的日期精確到秒 select add months to date 2010 2 27 yyyy mm dd 1 new date from dual結果 2010 3 27 當某年的2月只有28天,那麼新增乙個月後,返回3月的最後一天 select add months to ...
oracle 日期處理
當月資料 sql select from tablet wheret.create time trunc sysdate,mm and t.create time last day sysdate select from table t where t.create time trunc sysda...
oracle日期時間型timestamp相關學習
1 獲取系統時間的語句 ssxff6獲取小數點後面六位 select sysdate,systimestamp,to char systimestamp,yyyymmdd hh24 mi ssxff6 to char systimestamp,yyyymmdd hh24 mi ss.ff6 from...