Datum umwandeln

PHPProgi

Mitglied
Hallo zusammen

Ich habe in der DB ein Datum als INT gespeichert. Der Wert ist 40178. Dies währe 31.12.2009

Nun muss ich diesen Wert in das Datumsformat wandeln.

INSERT INTO Datum (Stichtag) VALUES (........)

Nun weiss ich nicht recht wie die Funktion TO_DATE und die Umwandlung mit CAST funktioniert.

Kann mir hier jemand helfen
Besten Dank

Nachtrag: Ich muss in eine Oracle DB reinschreiben.
 
Zuletzt bearbeitet:
Nach was für einer Logik ist 40178 der 31.12.2009?
Es ist definitiv kein UNIX-Timestamp. Auch FROM_DAYS() leifert nix sinnvolles.
 
Hallo

Folgende Erläuterung zu meiner Frage.

Grundlage, ich habe eine Standard-Appliaktion die mir innerhalb der Anwendung das Datum als 31.12.2009 anzeigt.

Schritt 1:
Ich imoprtiere ein Datum, in unserem Fall der 31.12.2009 in eine MS SQL DB Version 2005.

Code:
CAST(CONVERT(datetime, '{v,EndDate}',120) as INT) das v,EndDate beinhaltet den 31.12.2009.

Der Import liefert dann in der SQL DB den Wert 40178

Schritt 2:

Nun muss ich eben diesen Wert wieder exportieren und umwandeln. Eben diesesmal in eine Qracle DB.

Anmerkung.
Im SQL Server bekomme ich mit folgendem Select das richtige Datum:

Code:
Select CONVERT(datetime, CAST(40178 AS INT)-2, 104)

Ich hoffe dies hilft zur Erklärung.
 
Hallo

Stimmt nicht ganz.....ich befinde mich bereits im 2ten Schritt. Ich muss ins Oracle importieren und
da ist der Syntax wieder Oraclespezifisch aufzubauen.....
Also benötige ich Hilfe für Oracle.

Gruss
 
Dazu müsste man mehr wissen über den int aus MS SQL.

Wozus ist die 129 bei
CONVERT(datetime, '{v,EndDate}',120) as INT

Und wozu ist die 104 und das -2 bei
CONVERT(datetime, CAST(40178 AS INT)-2, 104)

Dies scheint mir sehr MS SQL-Speziefisch zu sein. Mir ist bei Oracle grad kein Befehl bekannt, der diese undurchsichtige Formel direkt zurückverwandelt.
 
Die Lösung sieht folgend aus:

to_date('30.12.1899', 'dd.mm.yy') + 40178

Danke fürs mitlesen und mitdenken.

Gruss
 
Zurück