我在Excel中有数据,如
7540006
7540447
但是当我将数据导入SQL Server时,它将保存为
7.54001e+006
7.54045e+006
所以现在当我尝试将其转换回原始状态时,它并没有以正确的值结束。
我尝试了以下转换
的查询declare @a varchar(40)
set @a = '7.54001e+006'
declare @b decimal(27, 12)
SELECT @b = CONVERT(REAL, @a, 2)
SELECT LTRIM(RTRIM(str(@a))), LTRIM(STR(@a))
SELECT CAST('7.54001e+006' as REAL)
和我得到的输出是所有方法的原始值的3加法 即
7540010
7540050
如何将其转换回原始状态??
答案 0 :(得分:7)
尝试以下查询,该查询给出了确切的值
select CAST(CAST('7.54001e+006' AS FLOAT) AS bigint)
答案 1 :(得分:1)
所有数据都存储为excel中的Unicode字符串255(DT_WSTR)。
以Unicode格式读取Excel数据。然后使用./ / p>在ssis或数据库中进行转换
选择CAST(' 7.54001e + 006'为真)
在Excel数据源中>>连接管理器>>数据访问模式 == QUERY
SELECT * FROM [SheetName$]
答案 2 :(得分:0)
当您将其保存到数据库中时,会将值转换为toString()
,例如
Convert.toString(7540006)
然后它将原始值保存在数据库中。