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

时间:2018-02-28 05:47:14

标签: sql sql-server decimal

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

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'

并得到了相同的结果。

对此有何建议?

5 个答案:

答案 0 :(得分:1)

使用ROUNDFLOOR功能与FORMAT功能 -

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

请检查RoundFloor功能之间的区别。

答案 1 :(得分:0)

执行此操作的正确方法可能是Round()

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果您不想使用小数值,可以简单地将它们转换为 INT / BIGINT

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

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

答案 4 :(得分:0)

replace(ltrim(format(d, '## ## ## ## ###\.\0\0')), ' ', ',')