oracle timestamp ohne Sekunden.
Ich habe einen timestamp(6) Spalte in einer Tabelle in meiner Datenbank. Würde ich gerne tun, einen Vergleich auf, aber ohne Berücksichtigung der Sekunden Teil. Ich weiß, dass ich trunc(timestamp) entfernen Sie die Zeit und überlassen Sie den Teil des Datums. Gibt es eine Möglichkeit, ich kann die Sekunden auf 0?
Dass ich dies tun wollen
CASE
WHEN ARR NOT BETWEEN FROM AND TO THEN 1
ELSE 0
END "mismatch"
bekomme aber Abweichungen, wenn die arr hat ein-Sekunden-Teil größer als VON und ZU. Ich dont sorgen sich, über Sekunden und wollen nur zu berücksichtigen, Minuten.
Jede Beratung sehr geschätzt.
Dank
- Was
trunc(timestamp * 24 * 60)
? - vielen Dank für die Antwort. Wenn ich das Tue, bekomme ich ORA-00932: inkonsistente Datentypen: expected NUMBER got TIMESTAMP
- anstelle von abschneiden, ich glaube, Sie können ändern Sie Ihre Logik, um die Arbeit mit den Sekunden.. es sollte besser werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
trunc()
- Funktion können Sie so entscheiden, wie viel von der Präzision zu verwerfen, über die optionalefmt
- parameter; der Standard ist, entfernen Sie alle Komponenten, d.h. das äquivalent vontrunc(x, 'DD')
. Wenn Sie wollen, nur verlieren die Sekunden, die Sie verwenden könnenMI
:Beachten Sie, dass der zurückgegebene Wert von
trunc
ist jetzt einDATE
, nicht einTIMESTAMP
. Wenn das ein Thema ist - das kann auch nicht sein - können Sie werfen es zurück:00:00:00
oder ist IhrNLS_DATE_FORMAT
ausblenden der Datums-Teil? Sie könnento_char()
es um die Zeit zeigen, aber lassen Sie es wie ein Datum für den Vergleich.