我在堆栈溢出中看到了一个帖子,其中包含与我的问题非常相似的问答。 其这篇文章: MySQL: turn decimal into percent within view
并按照上面的帖子所述,使用:
CONCAT(columnname * 100, '%')
多数民众赞成在我实际上做了.. 我有一个表格,其中包含特定薪水范围百分比的列。 它的减薪时间表。 我将百分比值作为十进制数据类型存储在“ ee”列中。
ee | decimal(4,4) | not null
我的问题是它给了我这个结果,而不是我想要的。
例如,该列中的条目是0.0200
,我想在查看时以“ 2%
”的形式显示它,但这就是我得到的。
select s_b,rangeA,rangeB,concat(ee * 100,'%') as 'ee_percent' from htbl;
+___________________________________+
|s_b| rangeA| rangeB|ee_percent |
+---+--------+---------+------------+
| 1| 0.00| 1500.00| 1.0000% |
| 2| 1500.00|999999.99| 2.0000% |
+-----------------------------------+
我知道这是一个重复的基本问题,但是我不知道为什么它不起作用, 如果您在我的语法或数据类型中发现错误,请告诉我。 任何建议和更正均受到高度赞赏。非常感谢。
答案 0 :(得分:0)
您可以尝试使用Floor功能,
select s_b,rangeA,rangeB,concat(FLOOR(ee * 100),'%') as 'ee_percent' from htbl;
答案 1 :(得分:0)
使用回合,即:
select s_b,rangeA,rangeB,concat(round(ee * 100),'%') as 'ee_percent' from htbl;
答案 2 :(得分:0)
您可以使用FORMAT
使用以下解决方案:
SELECT s_b, rangeA, rangeB, CONCAT(FORMAT(ee * 100, 0), '%') AS 'ee_percent'
FROM htbl;
计算结果始终为DECIMAL(4,4)
。因此,MySQL用四位小数位显示结果。您可以使用FORMAT
函数来格式化结果或使用其他删除小数位的函数。