我需要从SQL Server中的十进制值中选择两位数
16.987490 --> 16.98
8.0189918 --> 8.01
34.5566901 --> 34.55
答案 0 :(得分:3)
最简单的方法是减去0.005并使用round()
,str()
或cast()
:
select round(val - 0.005, 2)
答案 1 :(得分:2)
您可以使用ROUND
select CAST(ROUND (16.987490 , 2 , 1 ) as NUMERIC(18,2))
select CAST(ROUND (8.0189918 , 2 , 1 ) as NUMERIC(18,2))
select CAST(ROUND (34.5566901 , 2 , 1 ) as NUMERIC(18,2))
<强>输出强>
16.98
8.01
34.55
答案 2 :(得分:1)
declare @dec decimal(15,5)
set @dec = 16.987490
select cast(@dec as decimal(19,2))
因此解决方案是强迫&#34;转换为2的分数。
解决方案2,因为首先没有工作:
declare @dec decimal(15,5)
set @dec = 8.0189918
select cast(substring(cast(@dec as varchar(50)), 0, CHARINDEX('.', cast(@dec as varchar(50)), 1) + 3) as decimal(19,2))