我想将十进制数转换为特定格式。
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'
并得到了相同的结果。
有什么建议吗?
使用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
函数之间的差异。
这样做的正确方法可能是Round()
SELECT FORMAT(ROUND(123456789.1234,0), 'N', 'en-us') as 'en-us'
只需在内侧尝试round()。你还想要“12,34,56,789.00”格式。因此,您可以更改机器的区域设置。
如果,您不想使用十进制值,则可以将它们简单地转换为INT / BIGINT
SELECT FORMAT(cast(123456789.1234 as bigint), 'N', 'en-In')
使用文化参数en-In
为印度编号系统而不是西方编号系统en-us
look for Numbering system
replace(ltrim(format(d, '## ## ## ## ###\.\0\0')), ' ', ',')