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

Superset中使用JINJA调用from_dttm/to_dttm参数查询时报错求助

解决Superset SQL Lab中from_dttm/to_dttm参数未定义问题

问题原因

from_dttm和to_dttm是Superset为图表/仪表盘预设的时间范围参数,默认不会自动加载到SQL Lab的查询环境中。直接在SQL Lab里引用这两个变量,系统找不到对应定义,就会触发参数未定义的报错。

解决方法

方法1:在SQL Lab中手动定义参数

在SQL Lab查询页面,找到顶部的**“参数”(Parameters)**面板(未显示的话点击右上角参数图标打开),添加两个参数:

  • 参数名:from_dttm,类型选择Datetime,设置默认值(例如2024-01-01 00:00:00)
  • 参数名:to_dttm,类型选择Datetime,设置默认值(例如2024-01-31 23:59:59)

添加完成后,查询可保持原样,或改用更规范的Jinja语法引用(无需加单引号,避免格式问题):

SELECT *
FROM tbl
WHERE dttm_col > {{ from_dttm }} 
  AND dttm_col < {{ to_dttm }}

方法2:使用SQL Lab自带时间范围过滤器

SQL Lab支持直接添加可视化时间过滤,无需手动写变量:

  1. 点击查询页面顶部的**“添加过滤器”(Add Filter)**按钮
  2. 选择时间列dttm_col,设置所需时间范围(如最近7天、自定义区间)
  3. 系统会自动生成对应的WHERE条件,只需编写SELECT和FROM部分即可。

方法3:硬编码时间范围(临时测试用)

如果只是临时验证查询,可直接写死时间值:

SELECT *
FROM tbl
WHERE dttm_col > '2024-01-01 00:00:00' 
  AND dttm_col < '2024-01-31 23:59:59'

注意事项

  • 若要创建图表/仪表盘,无需在SQL Lab中手动引用这两个变量,应在创建图表的**“数据”**步骤中配置时间列和时间范围控件,系统会自动将from_dttm和to_dttm注入查询。
  • 用Jinja引用日期参数时,尽量不要加单引号,Superset会根据数据库类型自动处理日期格式转义,避免格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 22:19:58