Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Calcular diferença entre 2 datas/horas no Oracle SQL


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.