首页 > 解决方案 > 将 varshar 转换为整数,但也转换为 SQL 中的 AS

问题描述

我试图使用 Grafana 从我的 MySQL 数据库中显示一些漂亮的图表。

问题是该值具有的列是 varchar 而 Grafana 根本不喜欢它。它想要整数,但我无法改变它。

所以我读到我必须使用 CAST 但不知道如何使它工作。我试过但总是出错

我有这个 SQL 代码

SELECT
  UNIX_TIMESTAMP(last_updated) as time_sec,
  state as value,
  entity_id as metric
FROM states
WHERE $__timeFilter(last_updated) AND entity_id='sensor.cpu_temp'
ORDER BY time_sec ASC

所以我需要以某种方式将“状态”转换为整数以放入值中

所以我确实尝试了

SELECT
  UNIX_TIMESTAMP(last_updated) as time_sec,
  CAST(state AS int) as value,
  entity_id as metric
FROM states
WHERE $__timeFilter(last_updated) AND entity_id='sensor.cpu_temp'
ORDER BY time_sec ASC

但是得到一个错误

标签: mysqlsqlgrafana

解决方案


您需要CAST作为UNSIGNEDSIGNED。请参阅手册。恐怕我不知道为什么你也不能扮演INT。鉴于这是您将列声明为的类型,这似乎是有道理的。


推荐阅读