删除Decimal点后的尾随零,而不截断/近似SQL Server中的值

时间:2016-06-16 19:44:31

标签: sql-server

将小数存储为varchar

我有一个值为0.0375000的列。我需要将其转换为0.0375。

当我做的时候

convert(decimal(8, 7), substring(column, 0, 1) + '.' + substring(column, 2, 8)))

我的结果为0.0375000。

我想删除所有尾随零,我想要的结果是0.0375

我该怎么做?

3 个答案:

答案 0 :(得分:2)

如果你只需要4位小数,你需要小数5,4(假设你的小数点左边的数字适合1位数,如果你需要2位数,那么选择小数(6,4))< / p>

select  convert(decimal(5,4), substring(column,0,1)+'.' +substring(column,2,8) )

十进制数据类型https://msdn.microsoft.com/en-gb/library/ms187746.aspx

答案 1 :(得分:1)

如果2012 +##表示可选显示

Select format(0.0375000,'0.######')  Returns 0.0375

Select format(0.037502,'0.######')  Returns 0.037502
  

抱歉没有看到存储为varchar()

Select format(cast(somecolumn as decimal(18,8)),'0.######')

答案 2 :(得分:0)

--SQL Code for easy removing trailing zeros. select CONVERT(DOUBLE PRECISION,'2.256000')

-结果将为 2.256