当选择“用点替换逗号”截断值时

时间:2018-12-20 23:21:17

标签: sql sql-server-2008

我正在尝试转换一个varchar列,其中十进制分隔符为','。 找到的解决方法是将逗号替换为点,但SQL Server会自动对其进行四舍五入。参见以下示例:

2018-10-08 -8679.95 -8679,94711560794

select DATA, REPLACE([PL]*1,',','.') , PL from TB_BOOK 

请,任何人都知道如何获取所有小数位的值?

1 个答案:

答案 0 :(得分:1)

您可以用,代替.的方法。

但是,最重要的是,您需要将字符串明确CAST转换为带有足够小数位数的数字(FLOATDECIMAL(p, s),...)。

SELECT DATA, CAST(REPLACE([PL],',','.')  AS FLOAT), PL from TB_BOOK