【问题标题】:MySQL converting time to string (Grafana)MySQL将时间转换为字符串(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)

【问题讨论】:

    标签: mysql grafana


    【解决方案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() 是不同的类型?
    猜你喜欢
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多