SQL得到十进制,只有2个地方,没有圆

时间:2016-05-19 12:54:11

标签: sql sql-server tsql

我有一个返回小数的查询(SQL Server)。我只需要2位小数而不进行舍入:

enter image description here

在上面的例子中,我需要得到: 3381.57

有任何线索吗?

3 个答案:

答案 0 :(得分:2)

您可以通过ROUND()函数使用length和precision参数来截断您的值而不是实际舍入它来完成此操作:

SELECT ROUND(3381.5786, 2, 1)

2的第二个参数表示该值将四舍五入到两个小数位,第三个精度参数将指示是否执行实际舍入或截断(非零值将截断而不是舍入)。 / p>

示例

enter image description here

你可以see an interactive example of this in action here

答案 1 :(得分:0)

如果要控制表示,则需要将值输出为字符串。一种方法是转换为小数,然后转换为字符串:

select cast(cast(total as decimal(10, 2)) as varchar(255))

另一种方法是使用str()转换为字符串。但是,这通常需要删除空格:

select replace(str(total, 10, 2), ' ', '')

答案 2 :(得分:0)

另一种可能性是使用TRUNCATE

SELECT 3381.5786, {fn TRUNCATE(3381.5786,2)};

LiveDemo