Você pode subtrair datas no Oracle. Isso lhe dará a diferença em dias. Multiplique por 24 para obter horas e assim por diante.
SQL> select oldest - creation from my_table;
Se a sua data for armazenada como dados de caracteres, você deverá convertê-la primeiro em um tipo de data.
SQL> select 24 * (to_date('2009-07-07 22:00', 'YYYY-MM-DD hh24:mi')
- to_date('2009-07-07 19:30', 'YYYY-MM-DD hh24:mi')) diff_hours
from dual;
DIFF_HOURS
----------
2.5
Observação :
Esta resposta se aplica a datas representadas pelo tipo de dados Oracle
DATE .Oracle também tem um tipo de dados TIMESTAMP , que também pode representar uma data (com hora). Se você subtrair TIMESTAMP valores, você obtém um INTERVAL; para extrair valores numéricos, use o EXTRACT função.