Oracle - Holt Datum / Zeit in Millisekunden vom Datentyp DATE Feld
Frage
Ich habe last_update_date
Spalte definiert als DATE
Feld
Ich möchte Zeit in Millisekunden erhalten.
Zur Zeit habe ich:
TO_CHAR(last_update_date,'YYYY-DD-MM hh:mi:ss am')
Aber ich will Millisekunden als auch bekommen.
gegoogelt ich ein bisschen und denken DATE
Felder nicht Millisekunden haben. nur TIMESTAMP
Felder.
Gibt es eine Möglichkeit Millisekunden zu bekommen? Ich habe keine Möglichkeit, Datentypänderung für das Feld.
Keine korrekte Lösung
Andere Tipps
DATE Felder auf Oracle speichern die Daten nur bis zu einer Sekunde, so gibt es keine Möglichkeit etwas präziser als das bieten. Wenn Sie mehr Präzision möchten, müssen Sie eine andere Art wie TIMESTAMP verwendet werden.
Hier ist ein Link zu einer anderen SO Frage zu Oracle Datum und Uhrzeit Präzision.
Wie RC sagt der Typ DATE unterstützt nur eine Granularität auf die Sekunde.
Wenn in TIMESTAMP Umwandlung ist wirklich keine Option dann, wie etwa die Zugabe einer anderen numerischen Spalte, dass nur die Millisekunden hält?
Diese Option würde mehr umständlich zu behandeln als eine TIMESTAMP-Spalte, aber es könnte praktikabel sein, wenn die Art Umwandlung nicht möglich ist.
In einer ähnlichen Situation, wo ich nicht die Felder in einer Tabelle ändern könnte, (kann nicht ‚Bruch‘ Software von Drittanbietern leisten,) aber benötigten Unter zweiter Präzision, habe ich eine 1: 1 zusätzliche Tabelle, und ein nach Insert-Trigger auf der ursprünglichen Tabelle, die die Zeitstempel in die Zusatztabelle zu veröffentlichen.
Wenn Sie nur die Reihenfolge der Datensätze müssen wissen, innerhalb der gleichen Sekunde hinzugefügt wird, können Sie das gleiche tun, nur eine Sequenz, die als Datenquelle für das Zusatzfeld.