我正在尝试转换一个varchar
列,其中十进制分隔符为','
。
找到的解决方法是将逗号替换为点,但SQL Server会自动对其进行四舍五入。参见以下示例:
2018-10-08 -8679.95 -8679,94711560794
select DATA, REPLACE([PL]*1,',','.') , PL from TB_BOOK
请,任何人都知道如何获取所有小数位的值?
答案 0 :(得分:1)
您可以用,
代替.
的方法。
但是,最重要的是,您需要将字符串明确CAST
转换为带有足够小数位数的数字(FLOAT
,DECIMAL(p, s)
,...)。
SELECT DATA, CAST(REPLACE([PL],',','.') AS FLOAT), PL from TB_BOOK