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

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:

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.

(Visited 427 times, 1 visits today)

Das könnte auch interessant sein...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.