Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment calculer la différence entre deux horodatages dans Oracle

Problème :

Vous avez deux colonnes de type timestamp et vous voulez calculer la différence entre eux.

Exemple :

Dans le travel table, il y a trois colonnes :id , departure , et arrival . Vous souhaitez calculer la différence entre l'arrival et le departure .

Le travel le tableau ressemble à ceci :

identifiant départ arrivée
1 2018-03-25 12:00:00 2018-04-05 07:30:00
2 2019-09-12 15:50:00 2019-10-23 10:30:30
3 2018-07-14 16:15:00 2018-07-14 20:40:30
4 2018-01-05 08:35:00 2019-01-08 14:00:00

Solution :

SELECT
  id,
  departure,
  arrival,
  arrival - departure AS difference
FROM travel;

Le résultat est :

identifiant départ arrivée différence
1 2018-03-25 12:00:00 2018-04-05 07:30:00 10 19:30:0.0
2 2019-09-12 15:50:00 2019-10-23 10:30:30 40 18:40:30.0
3 2018-07-14 16:15:00 2018-07-14 20:40:30 0 4:25:30.0
4 2018-01-05 08:35:00 2019-01-08 14:00:00 368 5:25:0.0

Discussion :

Pour calculer la différence entre les horodatages dans Oracle, il suffit de soustraire l'horodatage de début de l'horodatage de fin (ici :arrival - departure ). La colonne résultante sera dans INTERVAL DAY TO SECOND . Le premier chiffre que vous voyez est le nombre de jours entiers qui se sont écoulés depuis le departure à arrival . Ensuite, vous verrez le nombre d'heures complètes, de minutes complètes et le nombre de secondes, avec toute seconde partielle comme décimale.