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.
Re: SQL Umwandlung von Text (01.01.2010) in Datum
Verfasst: So 24. Mai 2026, 10:13
von Pit Zyclade
Danke dir für die Anregung!
(Dass es um meine HSQL-Datei ging, schrieb ich ja schon)
Ich habe deine update ... set ... Konstruktion in verschiedenen Formen versucht.
Letztendlich hast du ja den String mit Substring wieder in einen String umgewandelt mit geändertem Trennungszeichen und geänderter Position.
Aber dann könnte ich ja nur zu Testzwecken gleich alle Datensätze mal mit demselben vorgefertigten "Datum" mal "updaten".
Aber da kam auch keine erfolgreiche Konstruktion zustande.
Oder wolltest du zunächst noch in eine Textformatierte Spalte die Datumsammlung einfügen und dann diese erst umformatieren?
Aber das alles ist derzeit bei mir nicht notwendig, weil ich in dieser Datenbank mit den Datumswerten auch zukünftig nicht rechnen will.
Also gebe ich auf und belasse die Datumsspalte textformatiert.
Aber dennoch vielen Dank! Man soll sich ja geistig immer beschäftigen (und nicht jeder hat Bidens Position und "Einkommen")