我有一个mySQL查询,用逗号输出十进制字段。
SELECT Metals.Metal, FORMAT(Fixes.GBPam, 3) AS AM, FORMAT(Fixes.GBPpm, 3) AS PM,
DATE_FORMAT(Fixes.DateTime, '%d-%m-%y') AS Date
FROM Fixes, Metals
WHERE Metals.Id = Fixes.Metals_Id
字段GBPam和GBPpm都是decimal(10,5)
现在我希望在我的sql查询中将列AM和PM格式化为3个小数位 - 正确
我希望将成千上万的值格式化为xxxx.xxx而不是x,xxx.xxx - 不正确
mysql查询的输出示例:
Metal AM PM Date
Gold 1,081.334 NULL 11-09-12
Silver 21.009 NULL 10-09-12
Platinum 995.650 NULL 11-09-12
Palladium 416.700 NULL 11-09-12
你能看到Gold AM的输出是1,081.334吗?如何输出1081.334?
这对我来说是个痛苦,因为我必须在PHP中删除以删除逗号。我更愿意让mysql正确格式化。
答案 0 :(得分:9)
只需使用ROUND
,这是一个数字函数。 FORMAT
是一个字符串函数
ROUND(Fixes.GBPam, 3)
答案 1 :(得分:1)
您可以使用replace
命令来实现此目的。
REPLACE(Fixes.GBPam,',','')
修改强> 关于你的问题,你可以这样做:
SELECT Metals.Metal, ROUND(REPLACE(Fixes.GBPam,',',''),3) AS AM,
ROUND(REPLACE(Fixes.GBPpm,',',''),3) AS PM,
DATE_FORMAT(Fixes.DateTime, '%d-%m-%y') AS Date
FROM Fixes, Metals
WHERE Metals.Id = Fixes.Metals_Id
答案 2 :(得分:0)
使用替换功能。无论字段是整数还是varchar,它都可以工作。
select replace(Fixes.GBPam,',','.');