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

Como calcular a diferença entre duas datas no PostgreSQL/Oracle

Problema:


Você tem duas colunas do tipo data e deseja calcular a diferença entre elas.

Exemplo:


Na travel tabela, há três colunas:id , departure , e arrival . Você gostaria de calcular a diferença entre arrival e departure e o número de dias entre a chegada e a partida inclusive .

A travel tabela fica assim:
id partida chegada
1 25-03-2018 2018-04-05
2 2019-09-12 23-09-2019
3 2018-07-14 2018-07-14
4 2018-01-05 2018-01-08

Solução:

SELECT
  id,
  departure,
  arrival,
  arrival - departure AS date_difference,
  arrival - departure + 1 AS days
FROM travel;

O resultado é:
id partida chegada date_difference dias
1 25-03-2018 2018-04-05 11 12
2 2019-09-12 23-09-2019 11 12
3 2018-07-14 2018-07-14 0 1
4 2018-01-05 2018-01-08 3 4

Discussão:


Para contar a diferença entre as datas como dias no PostgreSQL ou Oracle, basta subtrair uma data da outra, por exemplo. arrival - departure .

Mas, na maioria dos casos, o que você realmente quer é o número de dias entre a primeira e a segunda data inclusive . Então você precisa adicionar 1 dia à diferença em dias:arrival - departure + 1 .

No