创建一个变量来查看使用 dbt 运行模型的日期

JVA*_*JVA 2 variables casting date dbt

我需要向我的 dbt 模型添加一列,该列显示模型运行时的当前日期。

我尝试将{{ run_started_at.strftime("%Y-%m-%d") }}其直接添加到我的模型中,还尝试设置一个名为 date 的变量并创建这段代码 ( {% set report_date = dbt_utils.get_query_results_as_dict("select dateadd(day,-1,current_date()) as col")["COL"][0] %}),但问题是日期,就像我们今天在 2021 年 12 月 14 日那样,结果为这一栏是 1995 年(这是 的减法2021 - 12 - 14)。那么,现在有人有办法将此变量转换为日期吗?谢谢!

小智 7

好吧,我想我现在知道这个秘密了

请记住 dbt 是一个类似代码生成的工具

就你而言,我想你必须将 jinja 代码包装在字符串引号中

错误的:

SELECT {{ run_started_at.strftime("%Y-%m-%d") }} as YourColumn
--compiled: SELECT 2021-12-14 as YourColumn
--YourColumn=1995
Run Code Online (Sandbox Code Playgroud)

正确的:

SELECT '{{ run_started_at.strftime("%Y-%m-%d") }}' as YourColumn
--compiled: SELECT '2021-12-14' as YourColumn
--YourColumn=2021-12-14
Run Code Online (Sandbox Code Playgroud)