2016-05-16 70 views
0

我有一個數據庫與多個表使用日期字段。格式表與日期格式的varchar日期mysql

它們中的一些具有這種格式,如varchar(10)dd-mm-yyyy和其他具有dd-mm-yyyyyyyy-mm-dd的混合。

我試圖改變字段的格式DATE,然而,一切都在dd-mm-yyyy轉成0000-00-00

有一種正確的方式把所有的VARCHAR處理的日期類型,只有DD-MM-YYYY成日期格式在改變字段類型之前混合日期格式的故事?

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-%間 - %d');' – Saty

+0

的[mySQL的轉換VARCHAR到可能的複製日期](http://stackoverflow.com/questions/4706289/mysql-convert-varchar-to-date) –

+0

如果你使用的是編程語言,你可以輕鬆做到這一點...例如(在PHP中),' $ newField =新日期('Ym-d',$ oldField)',然後更新記錄。 – KST

回答

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 

此工作正常