Finde die verstrichene Zeit zwischen zwei Daten in Oracle SQL

7

Ich muss den Unterschied zwischen der Zeit im Format hh: mm: ss

finden %Vor%

msglog.timestamp hat in der obigen Abfrage den Typ DATE.

Wie kann ich die verstrichene Zeit oder Diff zwischen der Uhrzeit im richtigen Format in Oracle erhalten?

    
suni 13.01.2014, 17:00
quelle

3 Antworten

17

Wenn Sie zwei DATE -Werte wie enddate - startdate subtrahieren, erhalten Sie die Differenz in Tagen mit Dezimalgenauigkeit, also würde beispielsweise 1,5 1 1/2 Tage oder 36 Stunden bedeuten. Sie können das in HH:MI:SS mit viel Mathematik umwandeln, aber ein einfacherer Weg ist, den Dezimalwert in einen INTERVAL DAY TO SECOND -Wert zu konvertieren, indem Sie NUMTODSINTERVAL Funktion:

%Vor%

Sie würden denken, dass die Funktion TO_CHAR dies als HH:MI:SS formatieren könnte, aber so scheint es nicht zu funktionieren. Sie können stattdessen EXTRACT und TO_CHAR verwenden, um sicherzustellen, dass Sie führende Nullen erhalten:

%Vor%

Der 00 -Teil des Formatcodes gibt zwei Ziffern an, bei Bedarf eine vorangestellte Null. Der FM -Teil entfernt den führenden Platz im formatierten Ergebnis, das bei Bedarf für ein negatives Vorzeichen reserviert ist.

Beachten Sie auch, dass Ihre Abfrage Aggregatwerte erhält und sie in derselben SELECT -Liste verwendet. Oracle lässt dich das nicht tun. Versuchen Sie stattdessen Folgendes:

%Vor%     
Ed Gibbs 13.01.2014 17:18
quelle
12

Die Datumsarithmetik in Oracle ergibt eine Zahl in Tagen. Um also in Stunden zu konvertieren, multiplizieren Sie mit 24 und dann mit trunc , um eine ganzzahlige Zahl zu erhalten:

%Vor%

Um Minuten zu erhalten, wandeln Sie den Tag-Wert in Minuten und mod() das mit 60 um:

%Vor%

Konvertieren Sie für Sekunden die Tage wieder in Sekunden und mod() das mit 60:

%Vor%

Jetzt können Sie diese zusammensetzen, um den benötigten Zeichenfolgenwert zu erhalten.

    
GriffeyDog 13.01.2014 17:18
quelle
1

Um das Diff in Sekunden zu erhalten, können Sie dieses verwenden

%Vor%     
ok2307 07.03.2017 15:59
quelle

Tags und Links