總結分享Oracle日期函數

本篇文章給大家帶來了關于oracle的相關知識,其中主要介紹了一些常用的日期函數相關問題,包括了sysdate、add_months、last_day、trunc、round等等,希望對大家有幫助。

總結分享Oracle日期函數

推薦教程:《oracle

系統日期、時間函數

SYSDATE函數

該函數沒有參數,可以得到系統的當前時間。

案例代碼:

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

結果:

總結分享Oracle日期函數

SYSTIMESTAMP函數

該函數沒有參數,可以得到系統的當前時間,該時間包含時區信息,精確到微秒。

案例代碼

select systimestamp from dual;

結果:?

總結分享Oracle日期函數

數據庫時區函數

DBTIMEZONE函數

該函數沒有輸入參數,返回數據庫時區。

案例代碼:

select dbtimezone from dual;

?結果:

總結分享Oracle日期函數

?給日期加上指定的月份函數:

ADD_MONTHS(r,n)函數

該函數返回在指定日期r上加上一個月份數n后的日期。其中

r:指定的日期。

n:要增加的月份數,如果N為負數,則表示減去的月份數。

案例代碼:

select to_char(add_months(to_date('2018-11-12', 'yyyy-mm-dd'), 1),                'yyyy-mm-dd'),        to_char(add_months(to_date('2018-10-31', 'yyyy-mm-dd'), 1),                'yyyy-mm-dd'),        to_char(add_months(to_date('2018-09-30', 'yyyy-mm-dd'), 1),                'yyyy-mm-dd')   from dual;

結果:(如果指定的日期是月份的最后一天,返回的也是新的月份的最后一天,如果新的月份比指定的月份日期少,將會自動調回有效日期)

總結分享Oracle日期函數

月份最后一天函數

LAST_DAY(r)函數

返回指定r日期的當前月份的最后一天日期。

案例代碼:

select last_day(sysdate) from dual;

結果:

總結分享Oracle日期函數

?指定日期后一周的日期函數:

NEXT_DAY(r,c)函數

返回指定R日期的后一周的與r日期字符(c:表示星期幾)對應的日期。

案例代碼:

 select next_day(to_date('2018-11-12','yyyy-mm-dd'),'星期四') from dual;

結果:

總結分享Oracle日期函數

返回指定日期中特定部分的函數

EXTRACT(time)函數

返回指定time時間當中的年、月、日、分等日期部分。

案例代碼:

select extract(year from timestamp '2018-11-12 15:36:01') as year,        extract(month from timestamp '2018-11-12 15:36:01') as month,        extract(day from timestamp '2018-11-12 15:36:01') as day,        extract(minute from timestamp '2018-11-12 15:36:01') as minute,        extract(second from timestamp '2018-11-12 15:36:01') as second   from dual;

結果:

總結分享Oracle日期函數

?返回兩個日期間的月份數:

MONTHS_BETWEEN(r1,r2)函數

該函數返回r1日期和r2日期直接的月份。當r1>r2時,返回的是正數,假如r1和r2是不同月的同一天,則返回的是整數,否則返回的小數。當r1

案例代碼:

select months_between(to_date('2018-11-12', 'yyyy-mm-dd'),                       to_date('2017-11-12', 'yyyy-mm-dd')) as zs, --整數        months_between(to_date('2018-11-12', 'yyyy-mm-dd'),                       to_date('2017-10-11', 'yyyy-mm-dd')) as xs, --小數        months_between(to_date('2017-11-12', 'yyyy-mm-dd'),                       to_date('2018-10-12', 'yyyy-mm-dd')) as fs --負數   from dual;

結果:

總結分享Oracle日期函數

日期截取函數

ROUND(r[,f])函數

將日期r按f的格式進行四舍五入。如果f不填,則四舍五入到最近的一天。

案例代碼:

select sysdate, --當前時間        round(sysdate, 'yyyy') as year, --按年        round(sysdate, 'mm') as month, --按月        round(sysdate, 'dd') as day, --按天        round(sysdate) as mr_day, --默認不填按天        round(sysdate, 'hh24') as hour --按小時   from dual;

結果:

總結分享Oracle日期函數

TRUNC(r[,f])函數

將日期r按f的格式進行截取。如果f不填,則截取到當前的日期。

案例代碼:

select sysdate, --當前時間        trunc(sysdate, 'yyyy') as year, --按年        trunc(sysdate, 'mm') as month, --按月        trunc(sysdate, 'dd') as day, --按天        trunc(sysdate) as mr_day, --默認不填按天        trunc(sysdate, 'hh24') as hour --按小時   from dual;

結果:

總結分享Oracle日期函數

推薦教程:《oracle

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享