Möchte man ein deutsch formatiertes Datum: DD.MM.YYYY in eine MySQL-Tabelle mit dem Spaltentyp DATE speichern, so muss es vorher in das US-Format: YYYY-MM-DD umgewandelt werden.
Eine umständliche Möglichkeit wäre, den Datum-String über die PHP-Funktion explode() zu zerlegen und anschließend in der gewünschten Reihenfolge wieder zusammenzusetzen.
Deutlich einfacher und eleganter funktioniert es direkt in der MySQL-Query:
INSERT INTO `tabelle` SET `datum-englisch`=STR_TO_DATE(`datum-deutsch`,"%d.%m.%Y");
Danke für den Tipp, hat mir 5 Minuten Nachdenken erspart 🙂
Ich habe folgendes Problem bei MySQL:
Es wird eine software-generierte CSV Datei mit deutschen Datumsangaben geladen (Bsp: „2019-03-14T00:00:00+01:00“).
Dieses wird durch MySQL in einem Feld mit Format=DATE oder DATETIME in folgendem (falschen Format) umgewandelt: „20-03-2014“.
Gibt es eine einfache Möglichkeit in MySQL (ohne PHP) diese Umwandlung anzupassen, sodass ein korrektes Datum „14.03.2019“ ausgegeben wird ? Die Zeitangabe(THH:MM:SS+HH:MM) kann vernachlässigt werden, da sie immer 0 ist und nicht weiter verwendet wird.