oracle 兩個時間相減

2021-07-25 15:23:19 字數 3329 閱讀 7320

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')) 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...