Графический SQL-запрос, преобразование строки в число - PullRequest
0 голосов
/ 19 февраля 2019

Запрос 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
);

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019
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)

сделал трюк

0 голосов
/ 19 февраля 2019

Если 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)

Здесь - документация для CONVERT функция.

...