我有一些办公记录。数据库已经创建并填充了大量数据。我必须在其上创建搜索功能。但问题是数据库有日期字段,它是 var char 格式,格式为“DD-MM-YYYY”,例如:“18-11-2011” 我想以日期格式转换日期列而不丢失此数据。我试着在测试台上做这件事,一切都变成了零。例如:0000-00-00
同样可以做什么?
最佳答案
要扩展 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');
然后您可以删除旧列并重命名新列。或者保持原样。
关于MySQl DATE Format 将 Varchar 更新为不同格式的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8189056/