tsql - 更新货币字段以四舍五入到最接近的百分之一(2 位小数)

tsql - update money field to round to nearest hundredth (2 decimal places)

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

我的思路是:

UPDATE Transactions
SET amount = ROUND(amount, 2)

但这不行,因为根据the documentation,ROUND(123.4545, 2)结果是123.45,如果是钱的话,应该是123.46(如果是5以上,我们推一下)。

这有效

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

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

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