MySQL: Unterschiedliche Datumsformate

  • Moin,


    ich habe in meiner MySQL Spalte datum (aktuell noch Typ: varchar) zwei unterschiedliche Datumsformate vorliegen: yyyy-mm-dd und dd.mm.yyyy.


    Jetzt möchte ich alle yyyy-mm-dd Einträge nach dd.mm.yyyy umwandeln. Durch Google habe ich schon diverse Ansätze u.a. mit STR_TO_DATE() durchprobiert jedoch sind diese kläglich gescheitert..

  • Sollte doch mit einem simplen PHP-Skript machbar sein, oder? Einfach prüfen ob das Ergebnis Bindestriche enthält, und wenn ja den String anhand der Bindestriche splitten und die Zeile updaten.


    Ich würde einfach mit php eine foreach auf die Tabelle loslassen und dann das Datumsfeld z.B. damit anpassen:

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • Oder direkt in SQL als Einzeiler:


    UPDATE `TABELLE` SET `DATUMSSPALTE` = DATE_FORMAT(STR_TO_DATE(`DATUMSSPALTE`, '%Y-%m-%d'), '%d.%m.%Y') WHERE `DATUMSSPALTE` LIKE '%-%-%';


    :)

    Definitiv eleganter ^^

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • Bensen: Wäre es langfristig nicht sinnvoller, wenn Du von (VAR)CHAR auf DATE wechselst? Hat durchaus einige Vorteile. Du kannst es ja trotzdem weiterhin anders im SQL-Query auslesen. Die diversen Date-Funktionen machen es möglich.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Bensen: Wäre es langfristig nicht sinnvoller, wenn Du von (VAR)CHAR auf DATE wechselst? Hat durchaus einige Vorteile. Du kannst es ja trotzdem weiterhin anders im SQL-Query auslesen. Die diversen Date-Funktionen machen es möglich.

    Dies habe ich auch sofort nach Vereinheitlichung der Datumsformate gemacht. Deshalb ist mir das ganz auch erst aufgefallen, da er mir bei vorheriger Umstellung immer die Fehlermeldung bezüglich des falschen Formats ausgegeben hatte. ^^