Libre Office

SQL Umwandlung von Text (01.01.2010) in Datum

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Pit Zyclade
* LO-Experte *
Beiträge: 3198
Registriert: Mo 12. Nov 2012, 16:59

SQL Umwandlung von Text (01.01.2010) in Datum

Beitrag von Pit Zyclade » Sa 23. Mai 2026, 15:40

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
LO 25.8.6.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

RobertG
* LO-Experte *
Beiträge: 2964
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: SQL Umwandlung von Text (01.01.2010) in Datum

Beitrag von RobertG » Sa 23. Mai 2026, 21:46

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

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) 
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:

Code: Alles auswählen

ALTER TABLE "Tabelle" ALTER COLUMN "Datum" TYPE DATE
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.
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

Pit Zyclade
* LO-Experte *
Beiträge: 3198
Registriert: Mo 12. Nov 2012, 16:59

Re: SQL Umwandlung von Text (01.01.2010) in Datum

Beitrag von Pit Zyclade » So 24. Mai 2026, 10:13

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")
LO 25.8.6.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

Open Office
Antworten