Преобразование varchar в целое, но также в AS в SQL

Я пытаюсь использовать 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

Но получим ошибку

-1
задан 13 August 2018 в 16:11

1 ответ

MySQL поддерживает неявное преобразование, что может быть весьма полезным. Возможно, это делает то, что вы хотите:

(state + 0) as value,

Преимущество (и недостаток) неявного преобразования заключается в том, что он не генерирует ошибки, когда state не является числовым. В этом случае он просто преобразует ведущие цифры (если они есть) в число.

1
ответ дан 15 August 2018 в 16:58

Другие вопросы по тегам:

Похожие вопросы: