Je n'arrive pas à comprendre cela. Juste besoin de la différence en minutes entre 2 colonnes d'horodatage Oracle.
END_TS START_TS
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
11-NOV-13 01.52.14.000000 PM 11-NOV-13 01.51.14.000000 PM
11-NOV-13 02.20.47.000000 PM 11-NOV-13 02.19.47.000000 PM
18-NOV-13 12.44.54.000000 PM 18-NOV-13 12.34.02.000000 PM
22-NOV-13 12.02.09.000000 AM 22-NOV-13 12.02.08.000000 AM
select
round(
(cast(current_timestamp as date) - cast(<other_timestamp> as date))
* 24 * 60
) as diff_minutes
from <some_table>;
C'est ce que j'ai utilisé pour calculer la différence entre l'horodatage actuel et une entrée de table de rythme cardiaque pour la surveillance de la latence.
En supposant que votre table s'appelle TS
:
SELECT (EXTRACT (DAY FROM (end_ts-start_ts))*24*60*60+
EXTRACT (HOUR FROM (end_ts-start_ts))*60*60+
EXTRACT (MINUTE FROM (end_ts-start_ts))*60+
EXTRACT (SECOND FROM (end_ts-start_ts)))/60
FROM TS;
Le bon sens, pour être honnête.
Réduisez tout en quelques secondes
Nous effectuons la différence pour chacun des éléments, extrayons toutes les valeurs, les convertissons en base (seconde), puis les redimensionnons au niveau de granularité souhaité (minutes).
(Peut nécessiter un EXTRACT(YEAR
aussi).
Cela semble être une meilleure option
select (cast(your_column1 as date) - date '1970-01-01')*24*60*60
- (cast(your_column2 as date) - date '1970-01-01')*24*60*60
from your_table;