A Oracle - Melhor instrução SELECT para obter a diferença de minutos entre duas colunas DateTime?

StackOverflow https://stackoverflow.com/questions/206222

  •  03-07-2019
  •  | 
  •  

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?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top