oracle 兩個時間相減

來源:互聯網
上載者:User

標籤:

oracle 兩個時間相減預設的是天數

oracle 兩個時間相減預設的是天數*24 為相差的小時數

oracle 兩個時間相減預設的是天數*24*60 為相差的分鐘數

oracle 兩個時間相減預設的是天數*24*60*60 為相差的秒數

--MONTHS_BETWEEN(date2,date1)
給出date2-date1的月份
SQL>  select months_between(‘19-12月-1999‘,‘19-3月-1999‘) mon_between from dual;  

MON_BETWEEN
-----------
  9
SQL>

select months_between(to_date(‘2000.05.20‘,‘yyyy.mm.dd‘),to_date(‘2005.05.20‘,‘yyyy.dd‘)) mon_betw from dual; 

 



MON_BETW
---------
-60

Oracle計算時間差運算式

--擷取兩時間的相差豪秒數

select ceil((To_date(‘2008-05-02 00:00:00‘ , ‘yyyy-mm-dd hh24-mi-ss‘) - To_date(‘2008-04-30 23:59:59‘ , ‘yyyy-mm-dd hh24-mi-ss‘)) * 24 * 60 * 60 * 1000) 相差豪秒數 FROM DUAL; 

 


/*
相差豪秒數
----------
  86401000
1 row selected
*/

--擷取兩時間的相差秒數

select ceil((To_date(‘2008-05-02 00:00:00‘ , ‘yyyy-mm-dd hh24-mi-ss‘) - To_date(‘2008-04-30 23:59:59‘ , ‘yyyy-mm-dd hh24-mi-ss‘)) * 24 * 60 * 60) 相差秒數 FROM DUAL; 

 


/*
相差秒數
----------
     86401
1 row selected
*/

--擷取兩時間的相差分鐘數

select ceil(((To_date(‘2008-05-02 00:00:00‘ , ‘yyyy-mm-dd hh24-mi-ss‘) - To_date(‘2008-04-30 23:59:59‘ , ‘yyyy-mm-dd hh24-mi-ss‘))) * 24 * 60)  相差分鐘數 FROM DUAL; 

 


/*
相差分鐘數
----------
      1441
1 row selected
*/

--擷取兩時間的相差小時數

select ceil((To_date(‘2008-05-02 00:00:00‘ , ‘yyyy-mm-dd hh24-mi-ss‘) - To_date(‘2008-04-30 23:59:59‘ , ‘yyyy-mm-dd hh24-mi-ss‘)) * 24)  相差小時數 FROM DUAL; 

 


/*
相差小時數
----------
        25
1 row selected
*/

--擷取兩時間的相差天數

select ceil((To_date(‘2008-05-02 00:00:00‘ , ‘yyyy-mm-dd hh24-mi-ss‘) - To_date(‘2008-04-30 23:59:59‘ , ‘yyyy-mm-dd hh24-mi-ss‘)))  相差天數 FROM DUAL; 

 


/*
相差天數
----------
         2
1 row selected
*/

----------------------------------------
註:天數可以2個日期直接減,這樣更加方便
----------------------------------------

--擷取兩時間月份差

select (EXTRACT(year FROM to_date(‘2009-05-01‘,‘yyyy-mm-dd‘)) - EXTRACT(year FROM to_date(‘2008-04-30‘,‘yyyy-mm-dd‘))) * 12 +       EXTRACT(month FROM to_date(‘2008-05-01‘,‘yyyy-mm-dd‘)) - EXTRACT(month FROM to_date(‘2008-04-30‘,‘yyyy-mm-dd‘)) monthsfrom dual; 

 


/*
MONTHS
----------
        13
1 row selected
*/

--------------------------------------
註:可以使用months_between函數,更加方便
--------------------------------------

--擷取兩時間年份差
 

select EXTRACT(year FROM to_date(‘2009-05-01‘,‘yyyy-mm-dd‘)) - EXTRACT(year FROM to_date(‘2008-04-30‘,‘yyyy-mm-dd‘)) years from dual;

 


/*
YEARS
----------
         1

select sysdate,add_months(sysdate,12) from dual;  --加1年select sysdate,add_months(sysdate,1) from dual;   --加1月select sysdate,TO_CHAR(sysdate+7,‘yyyy-mm-dd HH24:MI:SS‘) from dual;  --加1星期select sysdate,TO_CHAR(sysdate+1,‘yyyy-mm-dd HH24:MI:SS‘) from dual;  --加1天select sysdate,TO_CHAR(sysdate+1/24,‘yyyy-mm-dd HH24:MI:SS‘) from dual;  --加1小時select sysdate,TO_CHAR(sysdate+1/24/60,‘yyyy-mm-dd HH23:MI:SS‘) from dual;  --加1分鐘select sysdate,TO_CHAR(sysdate+1/24/60/60,‘yyyy-mm-dd HH23:MI:SS‘) from dual;  --加1秒select   sysdate+7   from   dual;                     --加7天 

 

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.