【问题标题】:Grafana SQL Query, convert string to numberGrafana SQL 查询,将字符串转换为数字
【发布时间】:2019-02-19 17:34:23
【问题描述】:

Grafana 查询

Select UNIX_TIMESTAMP(created_at) as time_sec,
    metric_value as value,
    'Metric Value' as metric
from lumenis_db.telemetry
where $__timeFilter(created_at)

收到以下错误:

Value column must have numeric datatype, column: value type: string

如何通过查询将 metric_value 从字符串转换为数字?

编辑

我的 SQL:

CREATE TABLE lumenis_db.telemetry (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
created_at DATETIME(3) NOT NULL,
device_type VARCHAR(35) NOT NULL,
device_serial VARCHAR(35) NOT NULL,
metric_name VARCHAR(35) NULL,
metric_value VARCHAR(35) NULL
);

【问题讨论】:

  • metric_value 是存储为字符串的数字吗?

标签: mysql sql grafana


【解决方案1】:

如果metric_value 包含存储为String 的数字值,那么您可以使用MySQL 的CONVERT 函数,例如:

SELECT UNIX_TIMESTAMP(created_at) as time_sec,
    CONVERT(metric_value, UNSIGNED) as value,
    'Metric Value' as metric
FROM lumenis_db.telemetry
WHERE $__timeFilter(created_at)

HereCONVERT 函数的文档。

【讨论】:

  • 我明白了:错误 1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在第 2 行使用“UNSIGNED_INTEGER”附近的值,“Metric Value”作为 metric FROM lumenis_db.telem 的度量
  • @user829174 现在试试?
【解决方案2】:
SELECT UNIX_TIMESTAMP(created_at) as time_sec,
    CAST(metric_value as SIGNED integer) as value,
    'Metric Value' as metric
FROM lumenis_db.telemetry
WHERE $__timeFilter(created_at)

成功了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2019-04-02
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多