it-swarm.com.de

Wie erhalte ich den Minutenunterschied aus 2 Zeitstempelspalten?

Ich kann das nicht herausfinden. Benötigen Sie nur den Minutenunterschied zwischen 2 Oracle-Zeitstempelspalten.

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
5
KingKongFrog
select
  round(
    (cast(current_timestamp as date) - cast(<other_timestamp> as date))
    * 24 * 60
  ) as diff_minutes
from <some_table>;

Dies ist, was ich verwendet habe, um die Differenz zwischen dem aktuellen Zeitstempel und einem Herzschlag-Tabelleneintrag für die Latenzüberwachung zu berechnen.

11
Dirk

Angenommen, Ihre Tabelle heißt 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;

Gesunder Menschenverstand, um ehrlich zu sein.

Reduzieren Sie alles auf Sekunden

  • Eine Minute ist 60 Sekunden
  • Eine Stunde ist 60 Minuten (oder 60 * 60 Sekunden)
  • Ein Tag ist 24 Stunden oder (24 * 60 * 60)

Wir führen die Differenz für jedes der Elemente durch, EXTRAKTIEREN alle Werte, konvertieren sie in die Basis (Sekunde) und skalieren sie dann wieder auf den gewünschten Granularitätsgrad (Minuten).

(Benötigt möglicherweise ein EXTRACT(YEAR zu).

9
Philᵀᴹ

Dies scheint eine bessere Option zu sein

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;
0
Abdus Samad