mysql - 将 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
但是得到一个错误
解决方案
您需要CAST
作为UNSIGNED
或SIGNED
。请参阅手册。恐怕我不知道为什么你也不能扮演INT
。鉴于这是您将列声明为的类型,这似乎是有道理的。
推荐阅读
- python-3.x - 在 Postgres bigint 数据类型的最大限制内在 Python 中生成唯一数字
- sockets - 绑定 INADDR_ANY:
和 INADDR6_ANY_INIT: 在 Linux 上监听失败,但在 macOS 上成功 - java - 一些输入文件使用或覆盖了已弃用的 API Flutter build android
- node.js - 在分段上传到 S3 中使用流
- pandas - 如何*乘*(因为没有更好的术语)两个数据帧
- javascript - 如何使用 FileReader 在 JavaScript 中读取大型视频文件?
- android - 没有高级示例的 NavigationComponents 保留片段状态
- android - Android Calendar Provider 不返回最新数据
- r - R match.call:如何将变量传递给这个函数?
- mysql - SQL 数据库更正