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

如何修改Databricks中文本输入widget的默认值为昨日日期

问题根因

Databricks 中CREATE WIDGET的DEFAULT子句仅支持传入静态字面量,不支持直接嵌套SELECT查询或动态计算表达式,因此你之前的写法会触发解析错误。

解决方案

提供两种常用的实现方式,你可以根据使用场景选择:

方式1:使用Notebook内置工具(Python为例,最为常用)

在Python单元格中先计算出昨日日期,再通过dbutils API创建Widget,代码如下:

from datetime import datetime, timedelta
# 计算昨日日期,格式为YYYY-MM-DD
yesterday = (datetime.now() - timedelta(days=1)).strftime("%Y-%m-%d")
# 创建文本输入Widget,默认值为昨日日期
dbutils.widgets.text("FromDate", yesterday)

方式2:纯SQL实现

如果你需要全用SQL语句完成,可以先声明会话变量存储计算好的昨日日期,再用变量值作为默认值创建Widget:

-- 声明并赋值会话变量存储昨日日期
DECLARE OR REPLACE VARIABLE yesterday STRING DEFAULT CAST(date_sub(CAST(current_timestamp() AS DATE), 1) AS STRING);
-- 使用变量值作为默认值创建Widget
CREATE WIDGET TEXT FromDate DEFAULT getvariable('yesterday');

后续使用

创建完成后,你在后续的SQL语句、代码中都可以直接用${FromDate}引用该Widget的值,默认会自动取当前日期的前一天,同时支持用户手动修改输入值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:57:02