MySQL将时间转换为字符串(Grafana)
Posted
技术标签:
【中文标题】MySQL将时间转换为字符串(Grafana)【英文标题】:MySQL converting time to string (Grafana) 【发布时间】:2019-04-02 15:10:32 【问题描述】:我在显示用户通过 Grafana 运行软件版本/硬件版本的次数时遇到了一些问题。以下查询在 mysql Workbench 中正常工作,但在 Grafana 中完成时,给出以下错误:列 time/time_sec 的类型无效,必须是时间戳或 unix 时间戳类型,得到:字符串 1536692387
我尝试通过 CAST 和 CONVERT 将 time_sec 转换为 DATETIME 类型,但没有成功。有人对如何处理这个问题有建议吗?谢谢。
这里是当前查询(通过workbench——变量在Grafana中定义):
SET @$swVersion = 'LATEST';
SET @$hwString = 'TXT';
SELECT
IF(COUNT(user) > 0, epochStartTime, NOW()) AS time_sec,
COUNT(user) AS 'John Doe'
FROM
table
WHERE
STRCMP(user, 'Name') = 0
AND swVersion IN (@$swVersion)
AND hwString IN (@$hwString)
【问题讨论】:
【参考方案1】:试试这个:
UNIX_TIMESTAMP(IF(COUNT(user) > 0, epochStartTime, NOW())) AS time_sec
在您的查询中。
【讨论】:
您好,感谢您的回复!在添加“UNIX_TIMESTAMP”之前,当计数大于 0 时,我得到了数字字符串。但添加后,结果变为 null 并给出相同的错误:列 time/time_sec 的类型无效,必须是时间戳或 unix 类型时间戳。 看起来您的数据中的epochStartTime
已经是一个整数时间戳 - 仅将 UNIX_TIMESTAMP() 函数应用于 NOW():IF(COUNT(user) > 0, epochStartTime, UNIX_TIMESTAMP(NOW())) AS time_sec
成功了,非常感谢!我假设这是因为 NOW() 是不同的类型?以上是关于MySQL将时间转换为字符串(Grafana)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Prometheus 和 Grafana 将秒转换为 HH:MM:SS
Grafana:使用字符串类型的 MySQL 表列作为图形的 X 轴