我在Excel中有数据
7540006
7540447
Run Code Online (Sandbox Code Playgroud)
但是当我将数据导入SQL Server时,它将保存为
7.54001e+006
7.54045e+006
Run Code Online (Sandbox Code Playgroud)
所以现在当我尝试将其转换回原始状态时,它并没有以正确的值结束.
我尝试了以下查询进行转换
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)
Run Code Online (Sandbox Code Playgroud)
我得到的输出是所有方法的原始值加3,即.
7540010
7540050
Run Code Online (Sandbox Code Playgroud)
如何将其转换回原始状态?
小智 11
尝试以下查询,它给出了确切的值
select CAST(CAST('7.54001e+006' AS FLOAT) AS bigint)
Run Code Online (Sandbox Code Playgroud)
所有数据都以 Unicode 形式存储string 255 (DT_WSTR)
在excel
.
以表格形式读取excel
数据Unicode
。然后进行转换ssis
或database
使用。
SELECT CAST('7.54001e+006' as REAL)
Run Code Online (Sandbox Code Playgroud)
在Excel数据源>>连接管理器>>数据访问模式==查询
SELECT * FROM [SheetName$]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14507 次 |
最近记录: |