tsql - 更新money字段以舍入到最接近的百分位(小数点后2位)

时间:2016-05-05 00:10:13

标签: sql-server tsql rounding currency

将货币字段更新为百分之一的查询是什么。我有一些值到千分之一,因为我没有围绕他们进入数据库。现在我需要解决这个问题。

我正在思考:

UPDATE Transactions
SET amount = ROUND(amount, 2)

但这不起作用,因为根据the documentation,ROUND(123.4545,2)导致123.45,而在金钱的情况下,它应该是123.46(如果它是5或更高,我们给它推..)

2 个答案:

答案 0 :(得分:1)

这是有效的

UPDATE Transactions
SET amount = round(round(round(amount,4),3),2)

答案 1 :(得分:0)

您误读了引用的文章。要四舍五入到最接近的百分位,您只需查看千位位置的数字,在 123.4545 的情况下为“4”,因此您将向下舍入。 SQL Server ROUND 函数可以满足您的需求。

round(round(amount,3),2) 产生无意义的结果,将 123.4500 到 123.4544 舍入到 123.45,将 123.4545 到 123.4599 舍入到 123.46