MySql:查看表时将小数转换为百分比

时间:2019-03-06 07:28:35

标签: mysql

我在堆栈溢出中看到了一个帖子,其中包含与我的问题非常相似的问答。 其这篇文章: 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%  |
+-----------------------------------+

我知道这是一个重复的基本问题,但是我不知道为什么它不起作用, 如果您在我的语法或数据类型中发现错误,请告诉我。 任何建议和更正均受到高度赞赏。非常感谢。

3 个答案:

答案 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函数来格式化结果或使用其他删除小数位的函数。

  

演示: https://www.db-fiddle.com/f/ncjBpJRwdQVbT7PUBoXgeU/0