You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana中将内置时间浏览器过滤器应用到MySQL查询?

如何将Grafana内置时间过滤器应用到MySQL查询中

要把Grafana的内置时间浏览器过滤器集成到你的MySQL查询里,核心是用Grafana提供的内置时间变量替换原查询中硬编码的日期范围条件。

基础替换方案

Grafana会根据时间浏览器的选择自动生成$__dateFrom和$__dateTo变量(针对DATE类型字段),直接替换你原查询中的起始、结束日期判断即可:

SELECT DATE AS TIME, mbps
FROM overage
WHERE DATE >= $__dateFrom AND DATE <= $__dateTo
ORDER BY DATE

如果你的DATE字段是DATETIME类型,改用$__timeFrom和$__timeTo变量即可,Grafana会自动处理时间格式适配MySQL。

保留原逻辑作为默认值

如果你想保留原查询中的日期判断逻辑作为默认时间范围(当用户未手动选择时间时生效),可以用COALESCE()函数将变量和原逻辑结合:

SELECT DATE AS TIME, mbps
FROM overage
WHERE DATE >= COALESCE($__dateFrom, 
    CASE 
        WHEN DAY(CURDATE()) IN (1,2,3,4) THEN CONCAT(YEAR(CURDATE()),'-', MONTH(CURDATE() - INTERVAL 1 MONTH),'-04') 
        ELSE CONCAT(YEAR(CURDATE()),'-', MONTH(CURDATE()),'-04') 
    END)
  AND DATE <= COALESCE($__dateTo, CURDATE() - INTERVAL 1 DAY)
ORDER BY DATE

这个逻辑下:

  • 当用户通过时间浏览器选择了具体范围,会优先使用选择的时间
  • 未选择时,自动沿用你原来的日期判断规则

注意事项

  • 确保你的Grafana MySQL数据源配置正确,Grafana会自动处理变量的日期格式转换,无需手动拼接字符串
  • 如果字段是DATETIME类型,$__timeFrom和$__timeTo会生成带时间的格式(如'2024-05-01 00:00:00'),完全适配MySQL的类型要求

内容的提问来源于stack exchange,提问作者mo.kokabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:24:52