Oracle學習筆記 日期型處理 Date 。

2021-09-30 10:57:27 字數 1940 閱讀 2710

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