数值转货币格式求助:需将8564899转换为85,648.99格式
解决方案
一、转换为目标货币格式(85,648.99)
你的核心问题是原数值是实际金额的100倍整数(比如8564899对应85648.99),需先将数值除以100还原为实际金额,再做格式化:
方法1:用FORMAT生成带千分位的两位小数
SELECT FORMAT(8564899 / 100.0, 'N2') AS FormattedAmount;
执行结果:85,648.99
如果需要带货币符号(如$),改用格式符'C2':
SELECT FORMAT(8564899 / 100.0, 'C2') AS FormattedAmount;
执行结果:$85,648.99(符号取决于数据库区域设置)
方法2:兼容低版本SQL Server(无FORMAT函数)
SELECT REPLACE(STR(CONVERT(DECIMAL(10,2), 8564899 / 100.0), 12, 2), ' ', ',') AS FormattedAmount;
执行结果:85,648.99
二、仅截取数值最后两位
直接用取模运算符%获取最后两位:
SELECT 8564899 % 100 AS LastTwoDigits;
执行结果:99
你之前的方法无效的原因
你尝试的FORMAT(Value, 'F')、ROUND(Value, 2)等函数都是直接处理原数值8564899,没有先除以100还原实际金额,因此得到的是8564899.00这类不符合预期的结果。
内容的提问来源于stack exchange,提问作者user19463181
相关产品推荐
相关产品推荐

