sqlver科学计数法e问题
⼀、解决⽅案
2e-005 转成 0.00002
update 表名 t 列名=cast(列名 as float) as decimal(19,5)) where 列名 like '%e%'
如果: 2e-006 转成 0.000002 那么 decimal(19,6) ,以此类推。
⼆、测试:
lect cast(cast('+1.590759e+01' as float) as decimal(19,5))
结果: 15.90759
三、实际应⽤:
Hg(汞,nvarchar类型,考虑到有⼤于⼩于符号所有⽤nvarchar类型存储)
数据问题举例:
<0.00001
3e-005
转换:update WaterQualityTemp t Hg= cast(cast(Hg as float) as decimal(19,5)) where Hg like '%e%'
结果:
<0.00001
0.00003
四、另⼀种⽅法
--测试
lect convert(decimal(19,5),convert(float,'+1.590759e+01'))
--实际应⽤
update WaterQualityTemp t Hg= convert(decimal(19,5),convert(float,Hg)) where Hg like '%e%'
----------------实际数据完整操作-----------------------------------------------
--Excel操作全选,右键设置单元格格式,⽂本(考虑到⼤于⼩于符号)
--Excel导⼊数据库,改名为Temp
--Temp数据插⼊WaterQuality (插⼊前 Temp加ID列,设置主键和⾃增长。 WaterQuality的ID列暂时取消⾃增长,注意事后改回来)--inrt into WaterQuality lect * from [dbo].Temp
-- 科学计数法转标准值
--测试案例恂怎么读
--lect cast(cast('+1.590759e+01' as float) as decimal(19,5))
春天带来新希望>国培总结--实际应⽤
--update WaterQuality t Hg= cast(cast(Hg as float) as decimal(19,5)) where Hg like '%e%'
变色龙教学设计
--查看结果
--lect * from WaterQuality
心烦的说说-- 另⼀种⽅法 update WaterQualityTemp t Hg= convert(decimal(19,5),convert(float,Hg)) where Hg like '%e%'
--测试案例
--lect convert(decimal(19,5),convert(float,'+1.590759e+01'))
灼读音--实际应⽤
穿越火线歌曲
--inrt into WaterQualityTemp lect * from [dbo].Temp
--lect * from WaterQualityTemp
--update WaterQualityTemp t Hg= convert(decimal(19,5),convert(float,Hg)) where Hg like '%e%'大陆法系国家