我试着用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
所以我需要把“state”转换成整数,放入值中
所以我试过了
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
但是我犯了个错误
2条答案
按热度按时间ttp71kqs1#
mysql支持隐式转换,这非常有用。也许这正是你想要的:
隐式转换的优点(和缺点)是当
state
不是数字。在这种情况下,它只是将前导数字(如果有的话)转换成一个数字。gorkyyrv2#
你需要
CAST
作为其中之一UNSIGNED
或者SIGNED
. 请参阅手册。恐怕我不知道你为什么不能当演员INT
任何一个。考虑到这就是您声明列的类型,这似乎是有意义的。