Hi,
ich habe in einer Oracle DB ein Timestamp als Number abgespeichert
z.B. 0001120053438960
Kann mir jemand sagen wie ich diese Nummer in eine normales Datum konvertieren kann z.B.16:00, 23.09.2005 ?
Vielen Dank im Vorraus,
Garp
Hi,
ich habe in einer Oracle DB ein Timestamp als Number abgespeichert
z.B. 0001120053438960
Kann mir jemand sagen wie ich diese Nummer in eine normales Datum konvertieren kann z.B.16:00, 23.09.2005 ?
Vielen Dank im Vorraus,
Garp
Hi,
mahlzeit!
ich habe in einer Oracle DB ein Timestamp als Number
abgespeichert
muss zugeben, kenne mich mit Oracle nicht aus, aber wird hier nicht das Format wie beim Unix-Timestamp verwendet?
z.B. 0001120053438960
Sicher, dass es mehr als 10 Ziffern sind?
Kann mir jemand sagen wie ich diese Nummer in eine normales
Datum konvertieren kann z.B.16:00, 23.09.2005 ?
Wenn es eine 10-stellige Ziffer ist, wie im Unix-Format.
Wie schon gesagt, kenne mich mit Oracle und dessen Möglichkeiten nicht aus. Unter VB(A) verwende ich dazu die Funktion DateAdd
DateAdd („s“ , Unix-Timestamp, #1970/1/1#)
Vielleicht lässt sich auf ähnliche Weise hier auch das lesbare Datum erzeugen.
Vielen Dank im Vorraus,
Garp
Hallo,
versuchs mal mit TO_CHAR(timestamp, ‚dd.mm.yyyy‘)
Gruß
Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi!
ich habe in einer Oracle DB ein Timestamp als Number
abgespeichert
z.B. 0001120053438960Kann mir jemand sagen wie ich diese Nummer in eine normales
Datum konvertieren kann z.B.16:00, 23.09.2005 ?versuchs mal mit TO_CHAR(timestamp, ‚dd.mm.yyyy‘)
to_char eines timestamp, der im number-format vorliegt?
verwirrte grüße,
tomh
ps - weils mir schon öfter unterkam: warum zum teufel fällt immer wieder leute ein, datums- bzw. zeitwerte numerisch abbilden zu müssen???
Timestamp in Number speichern
Weils sonst zu gut läuft. Ist doch klar.
Gruß
Peter
Hallo Peter,
bin leider kein SQL-Profi. Muss ich TO_CHAR in mein select einbauen? Oder wie/wo kann ich TO_CHAR aufrufen?
Danke,
Garp
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo,
SELECT TO_CHAR(hier kommmt jetzt dein komisches numerisches Feld rein,‚DD.MM.YYYY‘) FROM deine tabelle WHERE was auch immer du willst.
Gruß
Peter
Hallo Peter,
danke für das Reply. Leider bekomme ich die Fehlermeldung:
ERROR at line 1:
ORA-01481: invalid number format model
Funktioniert diese Funktion nicht, wenn mein Wert schon ein NVARCHAR2 Typ ist?
Grüße,
Garp
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo,
wenn man es richtig macht, speichert man einen TIMESTAMP auch in ein DATE Feld. Nicht in einen NUMBER und auch nicht in ein CHAR.
Das DATE kann man dann mit TO_CHAR(feld,„format“) in jede gewünschte Form bringen. Mit TO_DATE kann man jede Eingabe in ein DATE Format bringen.
Alternativ gibt es die NLS_LANGUAGE Variable, die das Datumsformat anpasst. Vorteil, Speicherung und Anzeige sind getrennt.
Wenn Dein Problem ist, die alten Daten zu retten, müsste man mal schauen, was das bedeutet. Möglicherweise erhältst Du das richtige Datum durch aufaddieren zum 01.01.0000. In welcher Einheit Deine Zahl ist: keine Ahnung. Experimentieren!
Gruß
Peter
Hallo,
mittlerweile habe ich herausbekommen, dass mein Datum als Millisekunden (seit 1/1/1970) abgespeichert wird. Fragt mich bitte nicht warum
Kann man mit TO_DATE/TO_CHAR dort eine einfache Konvertierung machen?
Grüße,
Garp
PS: Datum Fromat ist ja echt interessant … wenn man noch eine Lösung findet ist es noch besser.