2

我正在从 Excel 电子表格导入创建的表中复制数据。

这是我将数据从导入表移动到实际表的操作:

INSERT INTO TableName ([Column1], [Column2])
SELECT [Column1], [Column2] FROM [Sheet1$] 

在第 1 列下执行此操作后,我得到如下记录:

5.31752e+007当该记录的实际值(来自我从中导入的表)是5046610163

有任何想法吗?

4

2 回答 2

3

您没有指定其中包含浮点数据的是 Column1 还是 Column2,但这里有一个示例,假设 Column1 是您需要的。

INSERT INTO TableName ([Column1], [Column2])
SELECT CAST([Column1] AS decimal(38,2)), [Column2] FROM [Sheet1$] 

我经常使用相同的代码转换为没有所有格式的 varchar:

SELECT CONVERT(varchar(100), CAST(@value as decimal(38,2)))
于 2011-08-31T21:06:35.873 回答
0
INSERT INTO TableName ([Column1], [Column2])
    SELECT UPPER([Column1]), [Column2] 
    FROM [Sheet1$] 

编辑

好的 - 然后尝试首先打开您的 Excel 工作表,创建第三列,并将其设为公式 (=UPPER(A1)),其中 A1 实际上是您遇到问题的任何列。

除此之外,如果您在 Excel 帮助中搜索“科学记数法”,您也会在那里获得一些有限的建议。

编辑 2

或者在 TSQL 中试试这个:

INSERT INTO TableName ([Column1], [Column2])
select LTRIM(str(cast([Column1] as real))), [Column2]
FROM [Sheet1$] 
于 2011-08-31T20:57:43.297 回答