2016-05-16 15 views
0

Ich habe eine Datenbank mit mehreren Tabellen mit Datumsfeldern.Format Tabelle mit Varchar Datumsformat zu Datum Mysql

Einige von ihnen haben dieses Format wie varchar(10)dd-mm-yyyy und andere haben eine Mischung aus dd-mm-yyyy und yyyy-mm-dd.

Ich habe versucht, das Format der Felder DATE ändern, aber alles in dd-mm-yyyy wiederum in 0000-00-00

Es gibt einen richtigen Weg, um alle Varchars als Datumstyp und nur dd-mm-yyyy in das Datumsformat drehen ist in die Geschichte mit gemischten Datumsformaten vor dem Ändern des Feldtyps?

date 
-------- 
01-12-2015 *** change this 
05-11-2016 *** this 
01-04-2016 *** and this 
2016-05-11 +++ and keep the ones on this format 
+0

'UPDATE YOUR_TABLE SET COMUMN_NAME = str_to_date (COMUMN_NAME, '% Y-% m-% d');' – Saty

+0

Mögliche Duplikat [mySQL konvertieren varchar Datum] (http://stackoverflow.com/questions/4706289/mysql-convert-varchar-to-date) –

+0

Wenn Sie eine Programmiersprache verwenden, können Sie das leicht tun ... Zum Beispiel (in PHP), ' $ newField = neues Datum ('Ym-d', $ oldField) ', dann aktualisiere den Datensatz. – KST

Antwort

0
UPDATE `table` 
SET `Fecha`=date_format(str_to_date(`Datefield`, '%d-%m-%Y'), '%Y-%m-%d') 
WHERE date_format(str_to_date(`Datefield`, '%d-%m-%Y'), '%Y-%m-%d') IS NOT NULL 

Das funktionierte richtig