navicat导入外部数据到mysql中文乱码以及日期格式问题
Posted luffy5459
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了navicat导入外部数据到mysql中文乱码以及日期格式问题相关的知识,希望对你有一定的参考价值。
最近在使用navicat导入外部数据到mysql中总结了以下几个问题:
1、中文乱码,这个是因为数据在csv或者excel中格式是ANSI格式。
比如csv的数据内容如下:
在导入向导这里就乱码了:
解决办法:需要修改为utf8格式,修改办法是使用记事本打开csv文件,然后另存为一个新文件,在编码格式的地方选择UTF-8。
另存为:
编码格式修改之后,导入到数据库中的样子:
2、日期格式,excel默认日期格式就是使用斜杠分割, 比如:1990/1/2,而navicat在导入的时候,可以对日期做处理,选择分割符,选择日期时间各个字段对应的顺序:
这里,我上面的导入其实就没有对日期排序做设置,所以导入的时间1990/1/2都变成了2002-01-01 ,要想导入的时间正确,需要设置为YMD,对应年/月/日。
日期在csv中,日期其实没必要填充0,比如1990/1/2,需要严格按照数据库格式来格式化1990/01/02。这个在导入的时候,工具自动填充了。如果非要填充,excel其实也好处理,选中需要操作的记录,然后右键,设置单元格格式,选择自定义,选择yyyy/m/d这个格式,修改为yyyy/mm/dd,或者自己手动输入yyyy/mm/dd。
操作效果如下:
日期格式,还需要注意一个问题,日期格式要么是正确的时间,要么为空,否则就会报导入错误。这里故意将一个日期改为/。导入的时候就报错:
错误信息:
还有一种,日期本身就不对,比如2007/6/31,肯定也会报错:
导入报错:
在导入到mysql中,只要有了csv,其实都可以不用提前建表,导入的时候可以自动建表,但是默认字段都是varchar类型,需要手动修改,另外会根据第一行内容作为字段名称。
以上是关于navicat导入外部数据到mysql中文乱码以及日期格式问题的主要内容,如果未能解决你的问题,请参考以下文章
[转]关于Navicat和MYSQL字符集不统一出现的中文乱码问题
因为原来的MYSQL有木马,我就卸载重装了,再把.sql文件导入,还用了navicat premium,打开表后出现乱码