控制显示sql server中的十进制分隔符

时间:2013-07-16 05:29:40

标签: sql sql-server

我在显示十进制数时遇到问题,它有很多数字。

我的sql声明:

Select sum(HS$totalMoney)

结果:

12132.123444343 

我想显示为12132.12而没有另一个号码

感谢。

6 个答案:

答案 0 :(得分:2)

如果您的逻辑是为了钱,您应首先对值进行舍入而不是截断

select CONVERT(decimal(18,2),round(12132.123444343 ,2))提供12132.12

select CONVERT(decimal(18,2),round(12132.125944343 ,2))提供12132.13

答案 1 :(得分:1)

SELECT CONVERT(decimal(21, 2), sum(HS$totalMoney))
-- This one will round in SQL Server but truncate in ASE 15 (which was available to me at the time)

SELECT CONVERT(decimal(21, 2), round(sum(HS$totalMoney), 2, 1))
-- This one uses a variant of ROUND supported by SQL Server, but not ASE 15 (and will truncate the third and subsequent decimal places).

答案 2 :(得分:1)

试试这个 -

SELECT CAST(12132.123444343 AS DECIMAL(10,2)) 

答案 3 :(得分:1)

如果您使用的是mysql,请使用代码blew

SELECT TRUNCATE(sum(HS$totalMoney), 2);

答案 4 :(得分:1)

此查询解决了您的问题

SELECT CAST(12132.123444343 AS DECIMAL(10,2)) 

或者您可以使用

select CONVERT(decimal(18,2),round(12132.1255555 ,2))

答案 5 :(得分:1)

round函数有一个截断的函数参数而不是round:

select round(12132.123444343 , 2, 1)

从这里: http://msdn.microsoft.com/en-us/library/ms175003.aspx