Oracle - Meilleure instruction SELECT pour obtenir la différence en minutes entre deux colonnes DateTime?
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?
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
http://asktom.oracle.com/tkyte/Misc/DateDiff.html - lien mort en date du 2012-01-30
On dirait que c'est la ressource:
http://asktom.oracle.com/pls/asktom /ASKTOM.download_file?p_file=6551242712657900129