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

Apache Superset 2.0.0如何实现月度时段过滤(每月1日至下月1日)

在Apache Superset 2.0.0中配置月度起始时间范围过滤器

方法一:高级SQL表达式过滤(推荐)

通过Superset的高级过滤功能,直接编写SQL表达式匹配所需时间范围,核心是根据数据库类型生成动态月度起止时间:

针对PostgreSQL数据库

假设时间字段为event_time,在高级过滤的SQL表达式框中输入:

event_time >= date_trunc('month', current_date) + interval '1 second'
AND event_time < date_trunc('month', current_date) + interval '1 month'
  • 逻辑说明:
    • date_trunc('month', current_date) 获取当前月1日00:00:00,加1秒后得到当月1日00:00:01
    • date_trunc('month', current_date) + interval '1 month' 获取次月1日00:00:00,用<确保范围截止到次月1日00:00:00(刚好符合你需要的“至次月1日00:00:01”的前一秒,避免包含次月起始时间)

针对MySQL数据库

假设时间字段为event_time,输入以下表达式:

event_time >= DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 SECOND)
AND event_time < DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)
  • 逻辑说明:
    • DATE_FORMAT(CURDATE(), '%Y-%m-01') 获取当前月1日,加1秒后得到当月1日00:00:01
    • DATE_ADD(..., INTERVAL 1 MONTH) 获取次月1日00:00:00,用<限定范围上限

方法二:自定义静态时间范围(仅适用于固定月份)

如果需要匹配特定月份而非动态当前月,可在Superset时间范围过滤器中选择「自定义」模式,手动输入时间:

  • 起始时间:YYYY-MM-01 00:00:01
  • 结束时间:YYYY-(MM+1)-01 00:00:01(注意月份进位,比如12月的结束时间为次年1月1日)

注意事项

  • 确保时间字段类型为datetime或timestamp,避免因类型不匹配导致过滤失效
  • 适配其他数据库时可调整对应日期函数:比如SQL Server用DATEADD(second, 1, DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1))生成当月1日00:00:01

内容的提问来源于stack exchange,提问作者Anandu Balan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:40:25