Datumsformat konvertieren / JJJJMMDD to JJJJ-MM-DD

piuser

Benutzer
Beiträge
5
Hallo,

ich habe vor einigen Monaten eine SQLite db mit dem Datumsformat JJJMMDD erstellt.
Jetzt erfahre ich, das dies kein gültiges SQLite Datumsformat ist und möchte die Daten in der db konvertieren.

Gibt es dazu Möglichkeiten ? Als Hilfmittel nutze ich DBBrowser for SQLite
 
Werbung:
ch habe vor einigen Monaten eine SQLite db mit dem Datumsformat JJJMMDD erstellt.
Jetzt erfahre ich, das dies kein gültiges SQLite Datumsformat ist

Ähm, ja. Wenn das kein valides Format ist, wie konntest Du es dann erstellen? Wenn ich in PostgreSQL versuche, invalide Daten zu speichern, passiert exakt das, was richtig ist: es wird nicht akzeptiert. Aber ja, ich kenne SQLite nicht ...
 
So auf dem Trockenen kann ich nur sagen, Update wäre der passende Befehl, um die gespeicherten Werte zu ändern.
Die Frage wäre dann nur noch, ob anhand der gespeicherten Daten und oder der Umstände abzuleiten ist, wie sie richtig lauten sollten.
Daraus müsste man dann ein Update Statement schreiben.
 
Habe in der SQLite eine Tabelle "TimeStamp" mit dem Inhalt "JJJMMDD HH:MM:SS"

Die vorhandenen Daten sollen nach "JJJJ-MM-DD HH:MM:SS" konvertiert werden.

Ist das mit SQL möglich ?
 
Die vorhandenen Daten sollen nach "JJJJ-MM-DD HH:MM:SS" konvertiert werden.

Ist das mit SQL möglich ?
Mmh, Du bist nicht sehr gesprächig. Hast Du dir das Beispiel von @castorp angesehen? Hast Du es verstanden?
Hier noch mal: SQLite 3.27 | db<>fiddle
Dort sieht man, man kann eintragen, was man will.

Ich habe es erweitert mit ein paar Updates:
Wie das wirklich genau bei Dir aussehen muss, wissen wir leider immer noch nicht. Wie schon mehrmals gesagt, man müsste wissen, was tatsächlich gespeichert wurde bei Dir.

Und noch was:
Wie an den Beispielen zu erkennen, macht das Typhandling von SQLite nur dann Sinn, wenn mit einer einheitlichen Zugriffskonvention gearbeitet wird. Konkret am besten mit einem einzigen Programm, das diese Konvention systematisch einhält. Wenn Du also ein solches Programm geschrieben hast, solltest Du das entsprechend und passend zur Korrektur der Daten in Deinem Programm ebenfalls anpassen.
 
In der Datenbank wird in der ersten Spalte der SQLiteDb "TimeStamp" im Format"JJJJMMDD HH:MM:SS" gespeichert. Seit mehreren Monaten.
Ich möchte diese Spalte in "JJJJ-MM-DD HH:MM:SS"konvertieren ohne jede einzelne Zeile zu editieren mit dem DBBrwoser. Es sind über 165000 Zeilen bereits enthalten.
Zukünftige Werte schreiben ich dann im Format "JJJJ-MM-DD HH:MM:SS" dort weiter hinein.

Muss zum Konvertieren eine neue Tabelle eingefügt weren ? Kann ich dann per SQL die neue Tabelle mit den konvertierten Daten füllen und die alte Tabelle anschliessend löschen ? Die Frage stellt sich mir...
 
Zuletzt bearbeitet:
Du suchst ein Update:

Code:
edb=*# create table piuser(ts text);
CREATE TABLE
edb=*# insert into piuser values ('20211201 10:10:10');
INSERT 0 1
edb=*# insert into piuser values ('20211202 11:11:11');
INSERT 0 1
edb=*# insert into piuser values ('20211203 12:12:12');
INSERT 0 1
edb=*# select * from piuser ;
        ts         
-------------------
 20211201 10:10:10
 20211202 11:11:11
 20211203 12:12:12
(3 rows)

edb=*# update piuser set ts = substring(ts,1,4) || '-' || substring(ts,5,2) || '-' || substring(ts,7,10) ;
UPDATE 3
edb=*# select * from piuser ;
         ts         
--------------------
 2021-12-01 10:10:1
 2021-12-02 11:11:1
 2021-12-03 12:12:1
(3 rows)

edb=*#

So oder so ähnlich wird das auch in SQLite gehen.
 
Verstehe das leider nicht. Gibt es nicht eine Möglichkeit per EXCEL ?
Kann SQLiteDb exportieren. Wie könnte ich die über 160000 Zeilen TimeStamp dort konvertieren ? oder per Notepad ++ ?
 
Werbung:
Niemand hier wird Deine Probleme für Dich fix und fertig lösen, jeder erwartet zumindest ein Minimum an Nachdenken.

Das Kommando, das Du suchst, wurde Dir schon mehrmals genannt (UPDATE). Wie die Syntax eines Updates funktioniert und wie man das Problem lösen kann, wurde Dir von @akretschmer bereits gezeigt, allerdings anhand von Postgres. Eventuell hat SqlLite eine geringfügig abweichende Syntax, aber Da schaust Du einfach in ein Buch oder eine Suchmaschine Deiner Wahl ("SqlLite Update Syntax" oder etwas ähnliches eingeben").

Wenn Dir Deine Daten lieb sind machst Du vor dem Update noch eine Datensicherung.

Frohe Weihnachten!
 
Zurück
Oben