oracle時間函數

來源:互聯網
上載者:User

標籤:部分   second   timezone   char   sys   post   next   日期   基礎上   

1.sysdate 返回當前日期。

2.add_months(d1,n1) 返回在日期d1基礎上再加n1個月後新的日期。
select sysdate,add_months(sysdate,3)  hz from dual;

3.last_day(d1) 返回日期d1所在月份最後一天的日期。
select last_day(sysdate)  hz from dual;

4.months_between(d1,d2) 返回日期d1到日期d2之間的月數。如果d1>d2,則返回正數;如果d1<d2,則返回負數。
select sysdate,months_between(sysdate,to_date(‘2006-01-01‘,‘YYYY-MM-DD‘)) from dual;


5.NEW_TIME(dt1,c1,c2) 給出時間dt1在c1時區對應c2時區的日期和時間。dt1 日期型,返回日期型
select to_char(sysdate,‘yyyy.mm.dd hh24:mi:ss‘) bj_time,to_char(new_time(sysdate,‘PDT‘,‘GMT‘),‘yyyy.mm.dd hh24:mi:ss‘) los_angles from dual;


6.round(d1[,c1]) 給出日期d1按期間(參數c1)四捨五入後的期間的第一天日期(與數值四捨五入意思相近)
select sysdate 當時日期,
round(sysdate) 最近0點日期,
round(sysdate,‘day‘) 最近星期日,
round(sysdate,‘month‘) 最近月初,
round(sysdate,‘q‘) 最近季初日期,
round(sysdate,‘year‘) 最近年初日期 from dual;


7.next_day(d1[,c1]) 返回日期d1在下周,星期幾(參數c1)的日期
d1日期型,c1為字元型(參數),c1預設為j(即當前日期);c1對應:星期一,星期二,星期三……星期日
select sysdate 當時日期,
next_day(sysdate,‘星期一‘) 下周星期一,
next_day(sysdate,‘星期二‘) 下周星期二,
next_day(sysdate,‘星期三‘) 下周星期三,
next_day(sysdate,‘星期四‘) 下周星期四,
next_day(sysdate,‘星期五‘) 下周星期五,
next_day(sysdate,‘星期六‘) 下周星期六,
next_day(sysdate,‘星期日‘) 下周星期日 from dual;


8.extract(c1 from d1) 日期/時間d1中,參數(c1)的值
SELECT SYSDATE FROM DUAL;    --15-1月 -18(年月日)
SELECT SYSTIMESTAMP FROM DUAL;  --15-1月 -18 11.20.50.210000000 上午 +08:00(年月日時分秒)

select
extract(hour from timestamp ‘2001-2-16 2:38:40 ‘ ) 小時,
extract(minute from timestamp ‘2001-2-16 2:38:40 ‘ ) 分鐘,
extract(second from timestamp ‘2001-2-16 2:38:40 ‘ ) 秒,
extract(DAY from timestamp ‘2001-2-16 2:38:40 ‘ ) 日,
extract(MONTH from timestamp ‘2001-2-16 2:38:40 ‘ ) 月,
extract(YEAR from timestamp ‘2001-2-16 2:38:40 ‘ ) 年
from dual;

select
extract(DAY from date ‘2001-2-16  ‘ ) 日,
extract(MONTH from date ‘2001-2-16 ‘ ) 月,
extract(YEAR from date ‘2001-2-16 ‘ ) 年
from dual;


9.localtimestamp 返回會話中的日期和時間
select localtimestamp from dual;


10.current_timestamp 以timestamp with time zone資料類型返回當前會話時區中的當前日期
select current_timestamp from dual;


11.current_date 返回當前會話時區中的當前日期
select current_date from dual;

12.dbtimezone 返回時區

 
1)to_char(value,‘format’)將值轉換成指定的字串格式,常用在日期上
select to_char(sysdate,”yyyy-mm-dd hh:mm:ss”) from dual;
select to_char(sysdate,‘yyyy‘)    from dual;   //擷取時間的年  
select to_char(sysdate,‘mm‘)     from dual;   //擷取時間的月  
select to_char(sysdate,‘dd‘)    from dual;   //擷取時間的日  
select to_char(sysdate,‘hh24‘)     from dual;   //擷取時間的24時  
select to_char(sysdate,‘mi‘)     from dual;   //擷取時間的分  
select to_char(sysdate,‘ss‘)    from dual;   //擷取時間的秒

 
2)返回指定日期所在某期間的第一天
--trunc(d1[,c1])
select   trunc(sysdate)  from dual; --無參數,返回本天0點日期
select   trunc(sysdate,‘day‘)    from dual; --返回本周星期日的日期
select   trunc(sysdate,‘month‘)    from dual; --返回本月的日期
select   trunc(sysdate,‘q‘)    from dual; --返回本季的日期
select   trunc(sysdate,‘year‘)    from dual; --返回本年的日期


3)日期之間相差的天數
select to_date(‘08/06/2018‘,‘mm/dd/yyyy‘)-to_date(‘07/01/2017‘,‘mm/dd/yyyy‘) from dual;

4)日期之間相差的月數,函數:months_between  
--months_between(date1,date2)
--如果兩個日期中“日”相同,或著這兩日分別是所在月的最後一天,那麼返回的結果是整數。否則,返回的結果將包含一個分數部分(以31天為一月計算)  
select months_between(to_date(‘01/31/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘)) "MONTHS" FROM DUAL;   --1(兩個日期中“日”相同)
select months_between(to_date(‘02/28/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘)) "MONTHS" FROM DUAL;   --2(這兩日分別是所在月的最後一天)

select months_between(to_date(‘01/01/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘)) "MONTHS" FROM DUAL;  --0.0322580645161290322580645161290322580645
select floor(months_between(to_date(‘01/01/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘))) "MONTHS" FROM DUAL;   --0

5)日期之間相差的年數
計算年數,是通過計算出月數,然後再除以12;
select floor(months_between(to_date(‘01/01/2015‘,‘mm/dd/yyyy‘),to_date(‘12/31/2014‘,‘mm/dd/yyyy‘)))/12 "MONTHS" FROM DUAL;


oracle時間函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.