我有一个包含数据的Excel工作表,当我将ID的数据类型更改为文本并获取它时,即使在列映射中它也显示为float。我使用格式单元格功能更改了excel中的列数据类型,即使它然后给了我相同的结果。如果我获取数据并使用强制转换或转换它,它会完全改变格式。
例如,如果
ID before cast or convert is 1598989 it transforms to 1.598989e+006
我使用的陈述是select cast(id) from A
答案 0 :(得分:1)
确保映射列类型(请参见图像)。还要突出显示Excel中的列并删除格式,或确保格式与目标列数据类型匹配,同时确保长度适当。我经常遇到字段截断的大多数问题。
1) Remove all formatting in excel.
2) Restart wizard with newly saved unformated excel file.
3) Map columns to their appropriate data types and size/length.
答案 1 :(得分:1)
如果在excel中使用数字格式,但数字对于单元格的宽度来说太宽,则excel会将显示更改为指数。如果使用自定义格式(例如000000000),则当单元格太窄时,它会显示数字符号。见图。你试过扩大专栏吗?
答案 2 :(得分:0)
当SQL读入Excel文件时,它会尝试智能并确定要使用的数据类型。它经常猜错(特别是因为它只扫描了几行),所以我总是将我的Excel文档导出为" CSV(逗号分隔)(* .csv)"先键入,然后将.csv文件导入SQL。