我试图使用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
但是出现错误
答案 0 :(得分:2)
您需要将CAST
设置为UNSIGNED
或SIGNED
。请参见manual。恐怕我也不知道为什么您也不能转换为INT
。鉴于您将列声明为该类型,这似乎很有意义。
答案 1 :(得分:1)
MySQL支持隐式转换,这可能会很有帮助。也许这就是您想要的:
(state + 0) as value,
隐式转换的优点(和缺点)是,当state
不是数字时,它不会产生错误。在这种情况下,它只会将前导数字(如果有)转换为数字。