Man könnte so etwas wie dies versucht (aber zuerst ein Backup Ihrer Tabelle!):
UPDATE table SET string_date_field = STR_TO_DATE(string_date_field, "%d-%m-%Y")
WHERE string_date_field RLIKE "^[0-9]{2}-";
RLIKE ein Synonym für REGEXP ist und Sie können die Datensätze zu finden, verwenden, wo das Datum in dem problematisch% d- % m-% Y-Format. Sie können anschließend die Tabelle ändern, so dass der Feldtyp DATE ist. Wenn Ihre Tabelle eine große Anzahl von Datensätzen enthält, sollten Sie dies möglicherweise in Intervallen tun, indem Sie ein fortlaufendes automatisches Inkrementierungsfeld verwenden (vorausgesetzt, dass eines vorhanden ist), um kleinere Sätze von Datensätzen für den Server zu erstellen. Zum Beispiel:
UPDATE table SET string_date_field = STR_TO_DATE(string_date_field, "%d-%m-%Y")
WHERE ID >= 1000000 AND ID < 2000000 AND string_date_field RLIKE "^[0-9]{2}-";
Wie speichern Sie Ihre Daten? Welche Art von Feld? ANyway, sieh dir das an: http://stackoverflow.com/questions/4259729/updating-a-date-format-in-mysql – Nobita
Wie kannst du sagen, in welchem Format sie sind? Wie zum Beispiel "09-10-11": ist das der 9. Oktober 2011 oder ist es der 11. Oktober? – ruakh
Aktualisiert den Beitrag ruakh :) Cheers Nobita - sieht vor Ort auf – Franco