[英]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
但是得到一個錯誤
您需要CAST
為UNSIGNED
或SIGNED
。 請參閱手冊 。 恐怕我也不知道為什么您也不能轉換為INT
。 鑒於您將列聲明為的類型,這似乎很有意義。
MySQL支持隱式轉換,這可能會很有幫助。 也許這符合您的要求:
(state + 0) as value,
隱式轉換的優點(和缺點)是,當state
不是數字時,它不會產生錯誤。 在這種情況下,它將只是將前導數字(如果有)轉換為數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.