J'essaie de répondre à une demande de rapport plutôt difficile d'un client, et j'ai besoin de trouver pour obtenir la différence entre deux colonnes DateTime en quelques minutes. J'ai essayé d'utiliser trunc et round avec divers formats et je n'arrive pas à trouver une combinaison qui ait du sens. Existe-t-il une manière élégante de procéder? Sinon, y a-t-il tout moyen de le faire?
SELECT date1 - date2
FROM some_table
renvoie une différence en jours. Multipliez par 24 pour obtenir une différence d'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
Par défaut, la soustraction de date Oracle renvoie un résultat en nombre de jours.
Il suffit donc de multiplier par 24 pour obtenir le nombre d'heures, puis à nouveau par 60 pendant le 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 au 30/01/2012
On dirait que c'est la ressource:
http://asktom.Oracle.com/pls/asktom/ASKTOM.download_file?p_file=6551242712657900129