SELECT FLOOR (a.VALUE)
|| ' days '
|| FLOOR ((a.VALUE - FLOOR (a.VALUE)) * 24)
|| ' hours and '
|| FLOOR ( ( (a.VALUE - FLOOR (a.VALUE)) * 24
- FLOOR ((a.VALUE - FLOOR (a.VALUE)) * 24)
)
* 60
)
|| ' minutes' diff
FROM (SELECT SYSDATE
- TO_DATE ('20-04-2009 13:03:00', 'DD-MM-YYYY HH24:MI:SS')
VALUE
FROM DUAL) a;
Result: 59 days 19 hours and 57 minutes