SQL Server : How can I copy data from one table to another table without the characters 'e+' being added to the results

标签 sql sql-server sql-server-2008 t-sql sql-server-2012

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

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

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

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

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

有什么想法吗?

最佳答案

您没有指定是 Column1 还是 Column2 包含 float 据,但这里有一个示例,假设 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)))

关于SQL Server : How can I copy data from one table to another table without the characters 'e+' being added to the results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7263271/

相关文章:

sql - 比较字符串,如果它在 Sql Server 2008 中为 NULL

mysql - MySQL其他列如何与其他列聚合

sql - 照原样从 Access 后端迁移到 SQL Server。需要效率帮助

sql - 如何用另外两个表的数据填充一个新表?

sql - 得到两个计数,然后将它们相除

sql-server-2008 - 我怎样才能总结一组总和? SQL Server 2008

sql - 通过 named_scope 返回对象数组 -- has_many...belongs_to 关联; UNION ALL 查询

mysql - 使用不同的where条件mysql一次更新所有行

sql - 我想将一个表中的行分配到另一个表中的行,这些行可以在 SQL oracle 中占用相同数量的行

sql - 如何从SQL Server主数据库中找到任何数据库中任何表的列数?