A Oracle - Melhor instrução SELECT para obter a diferença de minutos entre duas colunas DateTime?
Pergunta
Eu estou tentando satisfazer um pedido de informação bastante difícil de um cliente, e eu preciso encontrar afastado para obter a diferença entre duas colunas DateTime em minutos. Eu tenho tentado uso trunc e redondo com vários formatos e não pode parecem vir -se com uma combinação que faça sentido. Existe uma maneira elegante de fazer isso? Se não, há qualquer maneira de fazer isso?
Solução
SELECT date1 - date2
FROM some_table
retorna a diferença em dias. Multiplicar por 24 para obter a diferença em horas e 24 * 60 para obter minutos. Então
SELECT (date1 - date2) * 24 * 60 difference_in_minutes
FROM some_table
deve ser o que você está procurando
Outras dicas
Por padrão, a data oráculo subtração retorna um resultado em número de dias.
Então, basta multiplicar por 24 para obter # de horas, e novamente por 60 para # de minutos.
Exemplo:
select
round((second_date - first_date) * (60 * 24),2) as time_in_minutes
from
(
select
to_date('01/01/2008 01:30:00 PM','mm/dd/yyyy hh:mi:ss am') as first_date
,to_date('01/06/2008 01:35:00 PM','mm/dd/yyyy HH:MI:SS AM') as second_date
from
dual
) test_data
http://asktom.oracle.com/tkyte/Misc/DateDiff.html - dead link a partir de 2012-01-30
Parece que este é o recurso:
http://asktom.oracle.com/pls/asktom /ASKTOM.download_file?p_file=6551242712657900129