MySQL Datum mittels SQL ändern
Ich zeige euch wie man das MySQL Datum mehrerer Datensätze über SQL ändert. Dabei wird der Datetime Eintrag um einige Stunden verschoben. Es wäre sehr mühsam, jedes Datum einzeln zu ändern, viel schneller geht das mit SQL, man muss nur wissen wie!
MySQL Datum mittels SQL ändern
Für mein aktuelles Projekt, ein Browserspiel gilt es in einer Tabelle alle Termine des Rennkalenders für das Training, die Qualifikation und das Rennen zu ändern. Diese sollen nicht um 12 Uhr, sondern jeweils um 14 Uhr stattfinden. MySQL bietet zur schnellen Änderung von bereits bestehenden Datetime Zellen die Funktionen date_add und date_sub an, die jeweils den Spaltennamen und den zu addierenden Wert erwarten. Informationen über diese beiden Funktionen findet man in der MySQL Dokumentation. Die Aufgabe habe ich mit folgendem SQL Statement gelöst:
update track_calendar set training_date = date_add(training_date, INTERVAL 2 hour), qualification_date = date_add(qualification_date, INTERVAL 2 hour), race_date = date_add(race_date, INTERVAL 2 hour);
Mit der Schreibweise INTERVAL 2 hour wird immer in Verbindung mit den beiden genannten Funktionen verwendet. INTERVAL 2 hour bedeutet, dass man 2 Stunden zum bestehenden Wert hinzu addiert beziehungsweise abzieht – je nach verwendeter Funktion.
Worauf muss man achten?
Mit dem SQL Statement werden alle Werte einer Tabelle verändert. Will man das noch präzisieren, zum Beispiel, dass nur jene Daten geändert werden die im Dezember liegen, dann benötigt dieses Update noch eine Where Klausel. Führt man das Update aus, sind umgehend alle Werte geändert. Möchte man das wieder rückgängig machen, dann reicht es die Funktion mit dessen Gegenteil, also statt date_add nun date_sub, auszuführen!
Fazit
Das MySQL Datum lässt sich mittels SQL sehr schnell und praktisch ändern. Mit den MySQL Funktionen date_add oder date_sub kann man schnell Termin um bestimmte Zeitintervall nach vor legen oder nach hinten verschieben. Meine Tabelle war zwar nur 20 Zeilen lang, jeweils 3 Werte wären aber 60 zu ändernde Zellen gewesen, eine Arbeit die mir das Statement abgenommen hat.
Hallo,
ihr Artikel „MySQL Datum mittels SQL ändern“ kommt glaube ich meiner Aufgabenstellung schon sehr nahe. Ich kann zwar so den einen oder andere MySQL-Befehl umsetzen aber jetzt habe ich folgende Aufgabe:
In meiner Datenbank werden seit dem 01.01.2020 alle Dokumente immer mit dem Datum 01.01.1920 / 04.01.2020 / 10.01.2020 abgelegt. Das Programm was dafür verantwortlich ist kann aber kennt aber keiner Jahreszahlen größer als 2019 …
Jetzt würde ich gerne regelmäßig einen SQL-Befehl absetzen der mir nachträglich in der Datenbank das „falsche“ Datum „04.01.1920“ in das richtige Datum „04.01.2020“ korrigiert …
Können sie mir da weiterhelfen ???