Oracle - Meilleure instruction SELECT pour obtenir la différence en minutes entre deux colonnes DateTime?

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

  •  03-07-2019
  •  | 
  •  

Question

Je tente de répondre à une demande de création de rapports plutôt difficile d'un client et je dois trouver le moyen de trouver la différence entre deux colonnes DateTime en quelques minutes. J'ai essayé d'utiliser tronc et arrondir avec divers formats et ne semble pas venir avec une combinaison qui fait sens. Y a-t-il une manière élégante de faire ceci? Sinon, y a-t-il une façon de le faire?

Était-ce utile?

La solution

SELECT date1 - date2
  FROM some_table

renvoie une différence en jours. Multipliez par 24 pour obtenir une différence en heures et 24 * 60 pour obtenir des minutes. Donc

SELECT (date1 - date2) * 24 * 60 difference_in_minutes
  FROM some_table

devrait être ce que vous cherchez

Autres conseils

Par défaut, la soustraction Oracle Date renvoie un résultat en nombre de jours.

Il suffit donc de multiplier par 24 pour obtenir un nombre d'heures, et à nouveau par 60 pour un nombre de minutes.

Exemple:

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top