34

我有一个名为的列TotalArea,其格式为numeric (12,2).

我希望它用千位分隔符显示数字,所以当我

select TotalArea from table

向我展示像1,234.00.

我怎么能那样做?谢谢!

4

4 回答 4

46

试试这个方法:

SELECT REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, TotalArea), 1), '.00', '') 
FROM table

或者

SELECT CAST(CONVERT(VARCHAR, CAST(123456 AS MONEY), 1) AS VARCHAR)
FROM table
于 2012-12-13T10:07:11.317 回答
45
SELECT FORMAT(12345,'#,0.00');

SELECT FORMAT(TotalArea,'#,0.00') from table;

参考: https ://msdn.microsoft.com/en-us/library/ee634206(v=sql.105).aspx

于 2016-10-13T00:10:41.813 回答
22

显示数字的格式应该在显示层中完成,而不是在数据库中。因此,无论最终在何种应用程序中使用此数据,都应在此处对其进行格式化。不幸的是,Management Studio 在这方面没有提供太多控制。

于 2012-12-13T10:09:30.917 回答
2

我知道问题是针对 sql server 2008 但如果您有 sql server 2012+,则可以使用如下格式:

SELECT FORMAT(12345.5634, 2);

参考:https ://www.w3schools.com/sql/func_mysql_format.asp

于 2020-05-04T12:37:51.420 回答