在 MySQL 中使用印度数字分隔符格式化货币金额

我有一个查询,它给了我像 100000.0000 这样的总金额,我想显示这个像100000必须显示为卢比。1,00,000.00


这是我的查询:


String sql = " select distinct round(sum(netamount)) as amount from syncbill where cancelled<>'Y' and year(curdate())=year(billdate)";

ResultSet resultSetYtd = statement.executeQuery(YtdQuery);

while (resultSetYtd.next()) {

  String AmountYtd = resultSetYtd.getString("amount");

  system.out.println(AmountYtd);


}

我可以仅通过查询来实现吗?


慕尼黑5688855
浏览 306回答 2
2回答

素胚勾勒不出你

您正在寻找印度数字分隔符(十万、千万)。我们可以使用Format()函数,将第三个参数设置为en_IN(英语-印度)语言环境。第二个参数设置为 2 用于指定小数点后 2 个小数位.。最后,CONCAT('Rs.') 将货币添加到结果中。select CONCAT('Rs. ', FORMAT(sum(netamount), 2, 'en_IN'))&nbsp;from syncbill演示select format(100000,2,'en_IN');| format(100000,2,'en_IN') || ------------------------ || 1,00,000.00&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |在 DB Fiddle 上查看编辑:但是,正如评论中进一步讨论的那样,您的 MySQL 服务器版本非常旧(5.1),它不支持Format()带有 Locale 参数的功能。在此处查看 5.1 文档。

紫衣仙女

5.5.0的变更日志说FORMAT()函数现在支持可选的第三个参数,该参数允许指定区域设置以用于结果数字的小数点、千位分隔符以及分隔符之间的分组。允许的区域设置值与lc_time_names系统变量的合法值相同(请参阅MySQL 服务器区域设置支持)。例如,FORMAT(1234567.89,2,'de_DE')的结果是 1.234.567,89。如果未指定语言环境,则默认为“en_US”。所以,如果你有 5.5 或更高版本,它应该可以工作。如果您仍然遇到问题,请提供更多详细信息。(警告:当 5.5 达到 EOL 时,这些链接将断开。将链接编辑为 5.6;这些可能有效。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java