MySQl DATE以不同格式更新Varchar到日期

时间:2011-11-18 20:58:42

标签: mysql database date

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

可以为此做些什么?

1 个答案:

答案 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');

然后您可以删除旧列并重命名新列。或者保持原样。