首頁 >資料庫 >Oracle >總結分享Oracle日期函數

總結分享Oracle日期函數

WBOY
WBOY轉載
2022-03-18 18:19:032418瀏覽

這篇文章為大家帶來了關於Oracle的相關知識,其中主要介紹了一些常用的日期函數相關問題,包括了SYSDATE、ADD_MONTHS、LAST_DAY、TRUNC、ROUND等等,希望對大家有幫助。

總結分享Oracle日期函數

推薦教學:《Oracle教學

系統日期、時間函數

SYSDATE函數

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

案例代碼:

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

結果:

#SYSTIMESTAMP函數

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

案例代碼

select systimestamp from dual;

結果: 

#資料庫時區函數

##DBTIMEZONE函數

此函數沒有輸入參數,並傳回資料庫時區。

案例代碼:

select dbtimezone from dual;
 結果:

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

# #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;
結果:(如果指定的日期是月份的最後一天,則返回的也是新的月份的最後一天,如果新的月份比指定的月份日期少,將會自動調回有效日期)

#月份最後一天函數

LAST_DAY(r)函數

##傳回指定r日期的目前月份的最後一天日期。

案例代碼:

select last_day(sysdate) from dual;

結果:

# 指定日期後一週的日期函數:

NEXT_DAY(r,c)函數

傳回指定R日期的後一週的與r日期字元(c:表示星期幾)對應的日期。

案例程式碼:

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

結果:

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

EXTRACT(時間)函數

傳回指定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;

結果:

# 傳回兩個日期間的月份數:

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;

結果:

#日期截取函數

##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;
結果:

#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日期函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除