如何在SQL Server中将十进制数格式化为自定义格式?

问题描述 投票:1回答:5

我想将十进制数转换为特定格式。

FROM 123456789.1234 to 12,34,56,789.00.

我试过用它

SELECT FORMAT(123456789.1234, 'N', 'en-us') as 'en-us'

但是这会返回:

123,456,789.12 

我也试过了

SELECT FORMAT(123456789.1234, '##,###.00') as 'en-us'

并得到了相同的结果。

有什么建议吗?

sql sql-server decimal
5个回答
1
投票

使用ROUNDFLOOR函数与FORMAT函数 -

SELECT FORMAT(ROUND(123456789.1234,0), 'N', 'en-IN') as 'Round',
       FORMAT(FLOOR(123456789.1234), 'N', 'en-IN') as 'Floor'

请检查RoundFloor函数之间的差异。


0
投票

这样做的正确方法可能是Round()

SELECT FORMAT(ROUND(123456789.1234,0), 'N', 'en-us') as 'en-us'

0
投票

只需在内侧尝试round()。你还想要“12,34,56,789.00”格式。因此,您可以更改机器的区域设置。


0
投票

如果,您不想使用十进制值,则可以将它们简单地转换为INT / BIGINT

SELECT FORMAT(cast(123456789.1234 as bigint), 'N', 'en-In') 

使用文化参数en-In为印度编号系统而不是西方编号系统en-us look for Numbering system


0
投票
replace(ltrim(format(d, '## ## ## ## ###\.\0\0')), ' ', ',')
© www.soinside.com 2019 - 2024. All rights reserved.