Wenn ich versuche, den Datumsunterschied zu berechnen, indem ich die datediff-Funktion verwende, wird dieser ungültige Bezeichner angezeigt.
%Vor%Können Sie mir bitte sagen, welche Funktion es ist, den Datumsunterschied zu berechnen?
In Oracle gibt es keine Funktion DATEDIFF()
. Auf Oracle ist es ein Rechenproblem
Oracle-Unterstützung Mathematisch Subtrahieren Sie -
operator für Data-Datentyp. Sie können die folgende Anweisung select clause direkt eingeben:
Überprüfen Sie das BEISPIEL für mehr Sichtbarkeit.
Falls Sie die Ausgabe in Stundenstunden benötigen, kann das Folgende helfen:
%Vor% Sie können DATEDIFF
nicht verwenden
aber Sie können dies verwenden (wenn Spalten kein Datumstyp sind):
Oracle DateDiff stammt von einem anderen Produkt, wahrscheinlich mysql (das jetzt im Besitz von Oracle ist).
Der Unterschied zwischen zwei Daten (in Oracle's üblichem Datenbankprodukt) ist in Tagen (die Bruchteile haben können). Faktor um 24, um Stunden zu bekommen, 24 * 60 um Minuten zu bekommen, 24 * 60 * 60 um Sekunden zu bekommen (das ist so klein wie Daten gehen). Die Mathematik ist 100% genau für Daten innerhalb von ein paar hundert Jahren oder so. Z.B. um das Datum eine Sekunde vor Mitternacht von heute zu bekommen, könnte man sagen
Wählen Sie trunc (sysdate) - 1/24/60/60 von Dual;
Das bedeutet "die Zeit gerade jetzt", gekürzt, um nur das Datum zu sein (d. h. die Mitternacht, die heute Morgen aufgetreten ist). Dann subtrahiert es eine Zahl, die der Bruchteil von 1 Tag ist, der eine Sekunde misst. Das gibt Ihnen das Datum vom vorherigen Tag mit der Zeitkomponente von 23:59:59.