MySQl日期格式将Varchar更新为不同格式的日期

MySQl日期格式将Varchar更新为不同格式的日期,mysql,database,date,Mysql,Database,Date,我有一些办公室记录。数据库已经被创建并填充了大量数据。我必须在上面创建搜索功能。但问题是数据库中的日期字段是var char格式,格式为“DD-MM-YYYY”,例如:“18-11-2011” 我希望以日期格式转换日期列,而不丢失此数据。我试着在测试台上做,结果一切都变成了零。例:0000-00-00 对于同样的问题,我们可以做些什么?要扩展flesk的答案,请添加一个新的专栏 ALTER TABLE foo ADD newdate DATE; 更新表格以填充此新列(与flesk一样) 然后,

我有一些办公室记录。数据库已经被创建并填充了大量数据。我必须在上面创建搜索功能。但问题是数据库中的日期字段是var char格式,格式为“DD-MM-YYYY”,例如:“18-11-2011” 我希望以日期格式转换日期列,而不丢失此数据。我试着在测试台上做,结果一切都变成了零。例:0000-00-00


对于同样的问题,我们可以做些什么?

要扩展flesk的答案,请添加一个新的专栏

ALTER TABLE foo ADD newdate DATE;
更新表格以填充此新列(与flesk一样)

然后,您甚至可以测试转换是否正确

SELECT * FROM foo WHERE olddate  <> DATE_FORMAT(newdate, '%d-%m-%Y');
从foo中选择*其中olddate_格式(newdate,%d-%m-%Y');
然后,您可以删除旧列并重命名新列。或者让它保持原样

SELECT * FROM foo WHERE olddate  <> DATE_FORMAT(newdate, '%d-%m-%Y');