MySQL从十进制(13.6)到货币

MySQL从十进制(13.6)到货币,mysql,mariadb,Mysql,Mariadb,我试着从小数点13.6得到欧元的货币价值 我现在得到的结果是: ╔══════════════╦═════════╗ ║ total ║ Date ║ ╠══════════════╬═════════╣ ║8887616.500000║ 2017 ║ ╚══════════════╩═════════╝ 我想要的是这样的东西: ╔══════════════╦═════════╗ ║ total ║ Date ║ ╠══════════════╬

我试着从小数点13.6得到欧元的货币价值

我现在得到的结果是:

╔══════════════╦═════════╗
║   total      ║ Date    ║
╠══════════════╬═════════╣
║8887616.500000║ 2017    ║
╚══════════════╩═════════╝
我想要的是这样的东西:

╔══════════════╦═════════╗
║   total      ║ Date    ║
╠══════════════╬═════════╣
║€8,887.616.50 ║ 2017    ║
╚══════════════╩═════════╝
╔══════════════╦═════════╗
║   total      ║ Date    ║
╠══════════════╬═════════╣
║   €M8,9      ║ 2017    ║
╚══════════════╩═════════╝
或者这个:

╔══════════════╦═════════╗
║   total      ║ Date    ║
╠══════════════╬═════════╣
║€8,887.616.50 ║ 2017    ║
╚══════════════╩═════════╝
╔══════════════╦═════════╗
║   total      ║ Date    ║
╠══════════════╬═════════╣
║   €M8,9      ║ 2017    ║
╚══════════════╩═════════╝
我确实尝试过从十进制转换,但没有成功

SELECT  SUM(totalExcl) AS total, DATE_FORMAT(date_add, '%Y') AS 'Date'
FROM ex.ps_oxo_quotation
WHERE saleType IN ('IEW' , 'As', 'Pr')
AND date_add >= '2017-01-01 00:00:00'
GROUP BY 'Date'
ORDER BY 'Date' DESC

这将为您提供欧元格式的金额:

SELECT CONCAT('€', FORMAT(SUM(totalExcl), 2, 'de_DE')) AS total
将显示:8.890.905,86欧元

另一个要求的备选方案是:

SELECT CONCAT('€M', FORMAT((SUM(totalExcl)/1000000), 1, 'de_DE')) AS total
将显示:8.9欧元


请注意,此示例将根据标准LOCALE de_de显示总和,而不是您所要求的具有混合点的确切格式。和逗号,以非标准方式。如果您确实必须以这种方式格式化总和,则可以通过一些字符串操作轻松解决此问题。

哪个区域设置同时使用“、”作为千位分隔符?您可以使用SELECT FORMAT8887616.500000,2“区域设置”进行测试;您可以在这里阅读MySQL的函数格式。。。不知道FORMAT函数将支持同时使用“,”和“.”作为分隔符的wierd区域设置。FORMAT8890905.860000,2,“de_de”,此函数更改为“8.890.905,86”