在MySQL中使用印度数字分离格式的货币量

问题描述 投票:6回答:2

我这是给我像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);

}

我只能与查询实现这一目标?

java mysql
2个回答
2
投票

您正在寻找印度数字分隔符(万卢比,亿卢比)。我们可以使用Format()功能,与第三个参数设置为en_IN(英语 - 印度)语言环境。第二个参数被设置为2指定小数点后.小数点后2位。最后,CONCAT(“卢比。”)增加了货币的结果。

select CONCAT('Rs. ', FORMAT(sum(netamount), 2, 'en_IN')) 
from syncbill

演示

select format(100000,2,'en_IN');

| format(100000,2,'en_IN') |
| ------------------------ |
| 1,00,000.00              |

View on DB Fiddle


编辑:但是,正如评论进一步讨论,你的MySQL服务器版本是显著老(5.1),它不支持区域设置参数Format()功能。检查5.1文档here


1
投票

为5.5.0更新日志说

所述FORMAT()功能现在支持可选的第三个参数,使一个区域,以指定要被用于的结果数的小数点,千位分隔,和分离器之间的分组。允许区域值是相同的lc_time_names系统变量(见MySQL Server Locale Support)的合法值。例如,从FORMAT(1234567.89,2,'de_DE')结果是1.234.567,89。如果没有指定区域,则默认为“EN_US”。

所以,如果你有5.5或更高版本应该工作。如果您还是有问题,提供进一步的细节。

(警告:。在5.5击中EOL这些链接将打破编辑的链接,说5.6;那些可能工作)

© www.soinside.com 2019 - 2024. All rights reserved.