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

SQL Umwandlung von Text (01.01.2010) in Datum
-
Pit Zyclade
- * LO-Experte *
- Beiträge: 3197
- Registriert: Mo 12. Nov 2012, 16:59
SQL Umwandlung von Text (01.01.2010) in Datum
LO 25.8.6.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: SQL Umwandlung von Text (01.01.2010) in Datum
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:
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.
Code: Alles auswählen
SUBSTRING(s FROM start [ FOR len])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) Jetzt fehlt noch die Umwandlung. Die kannst Du für die ganze Tabelle machen:
Code: Alles auswählen
ALTER TABLE "Tabelle" ALTER COLUMN "Datum" TYPE DATEDer 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.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
