本篇文章給大家帶來了關于oracle的相關知識,其中主要介紹了一些常用的日期函數相關問題,包括了sysdate、add_months、last_day、trunc、round等等,希望對大家有幫助。
推薦教程:《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)函數
返回指定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》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END