oracle 兩個時間相減

2022-04-08 12:16:55 字數 4054 閱讀 9465

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

-----------

9sql

>

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

')) months

from

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 兩個時間相減

oracle兩個時間相減預設的是天數 oracle 兩個時間相減預設的是天數 24 為相差的小時數 oracle 兩個時間相減預設的是天數 24 60 為相差的分鐘數 oracle 兩個時間相減預設的是天數 24 60 60 為相差的秒數 months between date2,date1 給出d...

oracle 兩個時間相減

oracle兩個時間相減預設的是天數 oracle 兩個時間相減預設的是天數 24 為相差的小時數 oracle 兩個時間相減預設的是天數 24 60 為相差的分鐘數 oracle 兩個時間相減預設的是天數 24 60 60 為相差的秒數 months between date2,date1 給出d...

oracle 兩個時間相減

oracle兩個時間相減預設的是天數 oracle 兩個時間相減預設的是天數 24 為相差的小時數 oracle 兩個時間相減預設的是天數 24 60 為相差的分鐘數 oracle 兩個時間相減預設的是天數 24 60 60 為相差的秒數 months between date2,date1 給出d...