如何在SQL或Grafana中去除字符串小数点后内容,仅保留整数部分
解决方案
以下分别提供SQL层面、Grafana层面的两种处理方案,你可以根据自己的场景选择:
方法1:SQL层面处理(推荐,性能更稳定)
根据你使用的数据库类型,选择对应的函数即可:
- 整数取整(向下取整):通用函数为
FLOOR(目标字段),适合所有主流关系型数据库,示例:-- 示例:字段值为5555.7777时,返回结果为5555 SELECT FLOOR(你的字段名) AS 结果别名 FROM 你的表名; - 直接截断小数部分(不需要四舍五入/向下取整):
- MySQL使用
TRUNCATE(你的字段名, 0) - PostgreSQL使用
TRUNC(你的字段名, 0) - SQL Server使用
ROUND(你的字段名, 0, 1)
- MySQL使用
- 如果你的值是字符串格式存储的,可以直接用字符串切割函数,无需转数值:
-- MySQL示例,按小数点切割取第一部分 SELECT SUBSTRING_INDEX(你的字段名, '.', 1) AS 结果别名 FROM 你的表名;
方法2:Grafana面板层面处理(无需修改SQL查询)
不需要调整查询语句,直接在面板配置里修改即可,有两种常用方式:
方式A:字段转换(严格保留整数部分,无四舍五入)
- 打开对应面板的编辑页面,切换到Transform标签
- 新增「Add field from calculation」转换规则
- 计算模式选择「Math」,运算表达式填写
floor(${你的目标字段名}) - 配置完成后隐藏原始字段,仅展示计算后的整数字段即可
方式B:格式化配置(最快实现,适合可接受四舍五入的场景)
- 打开对应面板的编辑页面,切换到Panel标签
- 在「Standard options」配置组中找到「Decimals」选项,设置为
0 - 保存配置后Grafana会自动将数值展示为不带小数的整数格式
注意:该方式默认会对小数做四舍五入处理,如果需要严格取小数点前的内容,建议使用字段转换或者SQL层面的处理方案。
内容的提问来源于stack exchange,提问作者lo7
相关产品推荐
相关产品推荐

