我有一些办公室记录。数据库已经创建并填充了大量数据。我必须在它上面创建搜索功能。但问题是数据库有日期字段,其格式为var char,格式为“DD-MM-YYYY”,例如:“18-11-2011” 我想以日期格式转换日期列而不会丢失此数据。我尝试在测试台上进行操作,一切都变为零。例如:0000-00-00
可以为此做些什么?
答案 0 :(得分:3)
要扩展flesk的答案,请添加新列
ALTER TABLE foo ADD newdate DATE;
更新表格以填充此新列(如flesk所做的那样)
UPDATE foo SET newdate=str_to_date(olddate, '%d-%m-%Y');
然后你甚至可以测试转换是否正确。
SELECT * FROM foo WHERE olddate <> DATE_FORMAT(newdate, '%d-%m-%Y');
然后您可以删除旧列并重命名新列。或者保持原样。