MySQL从十进制(13.6)到货币

时间:2017-03-08 16:01:19

标签: mysql mariadb

我试图从小数(13.6)值到EURO的货币

我现在得到这个结果:

╔══════════════╦═════════╗
║   total      ║ Date    ║
╠══════════════╬═════════╣
║8887616.500000║ 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

1 个答案:

答案 0 :(得分:1)

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

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

将显示:€M8,9

请注意,此示例将根据标准(LOCALE de_DE)显示总和,而不是您所请求的具有混合点的确切格式“。”和逗号“,”以非标准的方式。如果你真的必须以这种方式格式化总和,这可以通过一些字符串操作轻松修复。