Seite 1 von 1

String in Datum umwandeln

Verfasst: Di 21. Jul 2020, 21:11
von Melsmann
Moin zusammen,

ich habe bei der Erstellung einer Datenbank einen Fahler gemacht und ein Datum in ein Text-Feld geschrieben. Da ich über ein anderes Feld die Datenbank sortiere ist mir der Fehler erst jetzt aufgefallen. Um die Datenbank auch nach Datum von - bis zu durchsuchen können muss ich die die Daten jetzt in ein Date-Feld schreiben.

Wenn ich das mache, kommen unsinnige Werte heraus: Aus dem 02.09.2020 wird 2002-09-20 und aus 30.09.2019 wird 2030-09-20

Gibt es eine Möglichkeit die Daten 1:1 umzusetzen?

Grüße
Jürgen

Re: String in Datum umwandeln

Verfasst: Mi 22. Jul 2020, 09:33
von gambasso
moin,

schau mal im 'Gambas-Buch' nach, da müßte unter dem Suchbegriff 'Datum' einiges zu finden sein.

Oder > https://de.wikibooks.org/wiki/Gambas:_Zeit_und_Datum

Ich kenn mich mit Datenbanken nicht aus.

Re: String in Datum umwandeln

Verfasst: Mi 22. Jul 2020, 13:17
von PJBlack
welches DBS verwendest du?

wenn ich in postgreSQL den string "02.09.2020" in ein datumsfeld schreibe wird er a) gespeichert und b) korrekt umgewandelt nach "2020-09-02" ...

Re: String in Datum umwandeln

Verfasst: Mi 22. Jul 2020, 18:03
von gambasso
moin,

Ich kenn mich mit Datenbanken nicht aus.

Deshalb kann ich Dir dazu speziell leider nichts mitteilen, außer, sehe Dir die Publikationen dazu an.

Re: String in Datum umwandeln

Verfasst: Mi 22. Jul 2020, 22:15
von PJBlack
du hast die datenbank angelegt, gefüllt, abgefragt usw. und weisst nicht welche datenbank du verwendest???

sorry, aber ohne irgendwelche informationen ist helfen echt schwierig ...

Re: String in Datum umwandeln

Verfasst: Mi 22. Jul 2020, 22:20
von tionov
Früher habe ich in solchen Fällen ein kleines Programm geschrieben, das durch alle Datensätze geht, jeweils den String ausliest, in eine Date-Variable konvertiert und diese bei dem Datensatz in einer neuen Spalte mit dem richtigen Format speichert.

Wenn alles funktioniert hat (vorher Backup der DB gemacht?), habe ich dann die alte Spalte gelöscht und die neue umbenannt in den Namen der alten.

Es geht sicher noch eleganter mit einer Query, die den String konvertiert und in der neuen Spalte speichert. Gar nicht kommt man daran vorbei, wenn man sehr viele Datensätze konvertieren möchte, weil die Datenbank selbst einfach viel schneller ist. Aber bis zu ein paar hunderttausend Datensätzen kann man auch noch die erste Problemlösung verwenden und dabei Kaffee trinken.