最近在为客户做一个库存升级改造的项目,之前客户的数据管理全部是在Excel中操作,估计以前也是没有意识到数据量变大以后,工作会变得如此困难,基本上处于一个无法操作的程度了。于是我们将旧版本的Excel表格格式化以后,导入到新开发的MySQL数据库中发现一个比较有趣的问题:Excel导入MySQL日期为0000-00-00了。
这个问题客户肯定是不能接受的,其实我们已经事先在Excel表中将日期字段设定为日期类型,而且在MySQL中的数据结构也是DATE类型,原以为是不会出错的。经过思考,我们决定用一个低级但很实用的办法来解决这个问题。
第一步:重新格式化Excel日期这个字段。选中日期列→右键单击→设置单元格格式...→自定义→在日期前面加一个特殊字符,这里以a为例,如下图:
第二步:选中已经发生格式变化的日期数据,这个时候双击某一个单元格,可以发现那个a会消失,这是因为那个a只是一个格式,所以我们需要把它处理成真正的文本内容:复制并粘贴到记事本中,然后再从记事本中复制粘贴回来,并替换掉现在的内容。
第三步:在MySQL中把日期字段的字符类型修改为varchar(255),接下来就可以把处理后的Excel导入MySQL了。然后使用SQL语句,对已经成功导入但是含有一个a字母的数据进行修改,所使用的SQL语句为:update 表名 set 字段名=replace(字段名,?a?,??);
第四步:在MySQL中,把日期字段的字符类型重新修改为DATE,然后,然后就大功告成了!
总的说来,这个方法真的没有什么技术含量,但是确确实实是非常实用的,当你在使用其他高科技方法出现错误或效率十分低下的时候,不妨试试我这个笨方法,不但有效,而且速度还很快!