将LEFT与LEN一起使用会将浮标转换为怪异的格式(例如6.0871e)

时间:2018-09-11 00:12:08

标签: sql sql-server

我有大约7000万行数据,其中一列包含数字,但采用浮点格式。我需要删除该列的最后4位数字,即我需要将其翻转

60871003002001 60871003002002 60871003002003

进入此

6087100300 6087100300 6087100300

运行查询时

select top 3 LEFT(COLUMN, LEN(COLUMN)-4) as a from TABLE

它返回以下内容:

6.0871e 6.0871e 6.0871e

有人知道为什么吗?我正在使用SQL Server。没有空值,每个数字的长度在12到15位之间。

谢谢!

1 个答案:

答案 0 :(得分:2)

相反,除以1000并转换成小数:

select cast( (col / 10000) as decimal(18, 0))

您面临的问题是,浮点数到字符串的默认转换有时可能用科学计数法表示。