T-SQL - 如何将DOWN舍入到最接近的.05

Roa*_*ast 0 sql t-sql sql-server-2005

我使用的数据库是SQL Server 2005.我试图将值DOWN舍入到最接近的.05(镍).

到目前为止,我有:

SELECT ROUND(numberToBeRounded / 5, 2) * 5

几乎工程-我需要的是表达,当numberToBeRounded1.99,评估到1.95,而不是2.

Guf*_*ffa 6

为要截断的第三个参数指定非零值而不是圆形:

SELECT ROUND(numberToBeRounded / 5, 2, 1) * 5
Run Code Online (Sandbox Code Playgroud)

注意:截断向零舍入,而不是向下舍入,但如果您有负值,则只会产生差异.要向下舍入甚至为负值,您可以使用该floor函数,但是您不能指定小数位数,因此您需要乘以而不是除以:

SELECT FLOOR(numberToBeRounded * 20) / 20
Run Code Online (Sandbox Code Playgroud)