电子表格字段:aa字段为文本类型,bb字段为数值类型(这个字段是价格,在电子表格已经设置为两位小
数),数据量有10万行这样。
问题:
1、aa字段有几个是纯数值的,我导入SQL时,预览时有的能看见,有的看不到,如:值为101,207,208,32014等都看不到,但52016,64704又看得见,郁闷,请
教了!
2、bb字段导入时原数值类型自动转换为float类型,小数位自动加长了,原两位小数变成14位,但大部
分是变了,有一些又没有变,如:30.52,23.48,3,27,6.5等没有变,119.4变成119.40000000000001,
7.94变成7.9398495540000011等,我在导入SQL时可以转换其他类型,小数位两位,导入完后发现数值都跟原来电子表格都不一样了,从电子表格到SQL的转换不明白它们之间是如何转换的,还请高手多多指教!
以上有没有办法导入SQL后跟电子表格的数据一样,谢谢!
1。我估计是格式的问题。你把看不见的那个数值在电子表格中双击那个单元格,然后保存,再导入看看,这个数据是否正确。如果正确,其他的也这样处理。
2。把bb字段也设置为文本型,导入后再转换为需要的类型。
或者导入后将其转换为float(18,2),就是只保留2为小数的格式,这样会四舍五入,应该跟原来的一样的。
建议把类型都改为文本型
我觉得bb导入时用numeric类型可以试试看。
aa中有可能是在电子表格中存储的格式不对的原因
我以前也碰到过这个问题,是要先转化成文本,在电子表格里,但设置excel的电子表格格式,效果不明显,即使你把他设置为"文本"格式,
我的解决办法是先全选电子表格里的数据,copy到记事本里,千万别小看记事本,这样可以完全转化成为文本!!!!然后新建一个电子表格,并设置该表格所有的单元格为"文本"格式,再从记事本里copy回来,这样就是完全的文本了,这样导就可以了!!!
UP
可以,在连接EXCEL代码中设置为混合模式即可。
建议楼主先将EXCEL文件另存为.csv文件,再使用 bulk insert 插入,效率会提高很多.