如何在dbt中使用与dbt_utils.dateadd中的字符串连接的变量?

问题描述 投票:0回答:1

我设置了一个名为年份的变量。 我想使用 dateadd 函数,但不是像下面的示例那样使用 from_date_or_timestamp

{{ dbt_utils.dateadd(datepart='day', interval=1, from_date_or_timestamp="'2017-01-01'") }}

我想使用变量年份与月份和日期连接,像这样

{{ dbt_utils.dateadd(datepart='day', interval=1, from_date_or_timestamp= year ~ '-01-01') }}

但是我无法让它工作......任何人都可以帮助我吗?

jinja2 dbt
1个回答
4
投票

解决此问题的方法可能如下:

{% set year = 2021 %}

select 
  {{ dbt_utils.dateadd(
    datepart = 'day',
    interval = 1,
    from_date_or_timestamp = "'" ~ year ~ "-01-01'"
    )
  }} as date_add_field

由于您需要输入

from_date_or_timestamp
为字符串,因此添加尾部
'
,然后添加
-01-01'
,两者都包裹在
""
中,即可使其工作。编译后的 SQL 如下所示(我使用的是 Snowflake,您编译的 SQL 可能会有所不同):

select 
  dateadd(day, 1, '2021-01-01') as date_add_field
© www.soinside.com 2019 - 2024. All rights reserved.