Subtraktion Zeitstempel in oracle Rückkehr seltsame Daten
Ich versuche zu subtrahieren zwei Termine und Sie erwarten einige von float-Werten zurück. Aber was ich bekam, im Gegenzug ist wie folgt:
+000000000 00:00:07.225000
Multipliziert den Wert mit 86400 (ich möchte den Unterschied in der zweiten) ist immer etwas, das noch seltsamer Wert zurückgegeben wird:
+000000007 05:24:00.000000000
irgendeine Idee? Ich bin zu Ahnen ist, hat etwas zu tun mit Typ-casting.
InformationsquelleAutor You Qi | 2012-04-27
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Ihre Spalten sind definiert als
timestamp
eher alsdate
.Dem Ergebnis der Subtraktion der Zeitstempel ist ein
interval
in der Erwägung, dass das Ergebnis der Subtraktiondate
Spalten ist eine Zahl, die die Anzahl der Tage zwischen zwei Datumsangaben.Dies ist in der Betriebsanleitung dokumentiert:
http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042
So, wenn Sie werfen Sie Ihre timestamp-Spalten für Datum, Sie sollten bekommen, was Sie erwarten:
Bearbeiten:
Wenn Sie möchten, konvertieren Sie das Intervall, also z.B. die Anzahl der Sekunden ein (als Zahl), können Sie etwas wie das hier tun:
Dem Ergebnis der oben ist
55499.5802
die Rücksendung Ergebnis nach dem Guss wird aufgerundet auf den zweiten. gibt es eine bessere Art und Weise kann ich die Differenz zwischen zwei timestamps in floating-point-Wert (bis zu mili oder Mikro-Sekunde)?
wie das, was Datentypen sind jene Spalten definiert?
es ist
TIMESTAMP(6)
. Ich eigentlich Abfrage:((CAST(Res.RAW_DATE AS DATE) - CAST(Req.RAW_DATE AS DATE))*86400) AS TIME_DIFF,
der cast zu
DATE
"Runden" bis auf Sekunden. Sie verlieren die Mikrosekunden, die Art und Weise.InformationsquelleAutor a_horse_with_no_name
Diesen Artikel Lesen:
http://asktom.oracle.com/pls/asktom/ASKTOM.download_file?p_file=6551242712657900129
Beispiel:
Sie brauchen nicht eine Funktion, die nur in dieser Anweisung: select datediff( 'ss', Datum1, Datum2 ) Sekunden von yourtable
Tom schafft
datediff
in diesem Artikel, es ist nicht ein standard-built-in-Funktion. Es auch nicht für die Arbeittimestamp
Werte, wie es stützt sich aufdate
arithmetische sowieso.InformationsquelleAutor buzznfrog