将结果包含在美元符号中的最佳方式是什么?
我正在使用类似的东西,CONCAT('£', SUM(Deposits)) AS TotalDeposits
但它似乎不起作用。
MySQL 拥有一个FORMAT() 函数来进行数字格式化部分。
SET @amount := 123456.7890;
SELECT CONCAT('$',FORMAT(@amount,2,'en_US')),
CONCAT('€',FORMAT(@amount,2,'de_DE'));
为您提供美国和德国格式。您必须自己输入货币符号;MySQL 的语言环境处理不会为您提供。
| ------------------------------------- | ------------------------------------- |
| $123,456.79 | €123.456,79 |
| ------------------------------------- | ------------------------------------- |
如果您正在处理其他人的钱,您可能希望使用类似DECIMAL(20,2)
而不是 aFLOAT
或的数据类型,DOUBLE
这样您就不会在聚合函数(如SUM()
.
话虽如此:正如@ADyson 在他的评论中指出的那样,聪明的程序员经常在他们的应用程序而不是他们的数据库中处理这种格式。这是因为应用程序编程语言比数据库(至少是 MySQL)具有更完整的区域设置处理,并且您可以更好地控制它。