vælg dt1, dt2, trunc( months_between(dt2,dt1) ) mths, dt2 - add_months( dt1, trunc(months_between(dt2,dt1)) ) daysfrom( vælg dato '2012-01-01' dt1 , dato '2012-03-25' dt2 fra dual union alle vælg dato '2012-01-01' dt1, dato '2013-01-01' dt2 fra dual union alle vælg dato '2012-01-01' dt1, dato '2012-01-01' dt2 fra dual union alle vælg dato '2012-02-28' dt1, dato '2012-03-01' dt2 fra dual union alle vælg dato '2013-02-28' dt1, dato '2013 -03-01' dt2 fra dual union alle vælg dato '2013-02-28' dt1, dato '2013-04-01' dt2 fra dual union alle vælg trunc(sysdate-1) dt1, sysdate fra dual) sample_data
Resultater:
| DT1 | DT2 | MTHS | DAGE |------------------------------------------------ ----------------------------| 1. januar 2012 00:00:00 | 25. marts 2012 00:00:00 | 2 | 24 || 1. januar 2012 00:00:00 | 1. januar 2013 00:00:00 | 12 | 0 || 1. januar 2012 00:00:00 | 1. januar 2012 00:00:00 | 0 | 0 || 28. februar 2012 00:00:00 | 1. marts 2012 00:00:00 | 0 | 2 || 28. februar 2013 00:00:00 | 1. marts 2013 00:00:00 | 0 | 1 || 28. februar 2013 00:00:00 | 1. april 2013 00:00:00 | 1 | 1 || 14. august 2013 00:00:00 | 15. august 2013 05:47:26 | 0 | 1.241273 |
Link til test:SQLFiddle