簡體   English   中英

將varshar轉換為整數,但也轉換為SQL中的AS

[英]Convert varshar to integer but also into an AS in 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

但是得到一個錯誤

您需要CASTUNSIGNEDSIGNED 請參閱手冊 恐怕我也不知道為什么您也不能轉換為INT 鑒於您將列聲明為的類型,這似乎很有意義。

MySQL支持隱式轉換,這可能會很有幫助。 也許這符合您的要求:

(state + 0) as value,

隱式轉換的優點(和缺點)是,當state不是數字時,它不會產生錯誤。 在這種情況下,它將只是將前導數字(如果有)轉換為數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM