在SQL Server中舍入到最接近的5

aca*_*dia 12 sql-server-2008

我的SQL Server 2008表中有一个Money列.在我的下面查询中,如何将其舍入到最接近的5 $

select FineAmount from tickets
Run Code Online (Sandbox Code Playgroud)

谢谢

kri*_*tof 27

select round(FineAmount*2,-1)/2 from tickets
Run Code Online (Sandbox Code Playgroud)

或者在sql中加入nicholaides建议

select round(FineAmount/5,0)*5 from tickets
Run Code Online (Sandbox Code Playgroud)

该示例假定FineAmount属于money类型.第二种方法可能更好,因为第一种方法适用于maximum_value_of_money_type/2的限制

更多关于ROUND

  • 我要添加的唯一说明是确保它将 5 划分为小数,而不是整数。您可以将其包装在转换/转换中,或向其添加 0,以确保其正常工作。例如从票中选择 round(FineAmount/5.0,0)*5 (3认同)

nic*_*des 16

一般数学解决方案:

除以5,舍入到最接近的整数,然后乘以5.