Seite 1 von 1
SQL Umwandlung von Text (01.01.2010) in Datum
Verfasst: Sa 23. Mai 2026, 15:40
von Pit Zyclade
Habe eine Datenbank mit einer Tabelle mit einem TextFeld, das Daten in Form DD.MM.YYYY enthält und möchte diese in ein vorhandenes Datumsfeld (bereits in der gewünschtne Form formatiert) überführen.
Das müßte doch mit
update "Tabelle" set "xyneu" = WAS ("xyalt")
gehen, aber wie geht das richtig ?
Danke für einen Beispieltipp
Re: SQL Umwandlung von Text (01.01.2010) in Datum
Verfasst: Sa 23. Mai 2026, 21:46
von RobertG
Bei so etwas ist es immer wichtig, die Datenbank zu wissen, die darunter liegt. Ich mache das einmal mit einer Funktion, die sowohl für HSQLDB als auch für Firebird gilt:
Code: Alles auswählen
update "Tabelle" set "Datum" = SUBSTRING("Datum" FROM 6 FOR 4)||'-'||SUBSTRING("Datum" FROM 3 FOR 2)||'-'||SUBSTRING("Datum" FROM 1 FOR 2)
Probiere das erst einmal als Abfrage. Muss dann das Format YYYY-MM-DD haben.
Jetzt fehlt noch die Umwandlung. Die kannst Du für die ganze Tabelle machen:
Bei Firebird ist TYPE notwendig.
Der Befehl schlägt fehl, wenn sich die vorgegebenen Strings nicht einwandfrei in ein Datum ändern lassen.
Natürlich kann das Ganze auch als Abfrage funktionieren. Dann brauchst Du in der Tabelle gar nichts zu ändern und gehst einfach mit CAST(…) AS DATE vor, so dass aus dem erstellten Datumstext ein Datum wird.