我想将十进制数转换为特定格式。
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'
并得到了相同的结果。
对此有何建议?
答案 0 :(得分:1)
使用ROUND
或FLOOR
功能与FORMAT
功能 -
SELECT FORMAT(ROUND(123456789.1234,0), 'N', 'en-IN') as 'Round',
FORMAT(FLOOR(123456789.1234), 'N', 'en-IN') as 'Floor'
请检查Round
和Floor
功能之间的区别。
答案 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')), ' ', ',')