sql - 使用数据构建工具(dbt)和雪花,如何检查列是否为日期字段?

标签 sql jinja2 snowflake-cloud-data-platform dbt snowflake-connector

我是一名初级学生,如果我的解释不是那么好,我深表歉意。

我在 dbt 上创建了一个宏,以根据数据类型添加具有定义值或默认值的默认行。

我想要实现的是检查列是否是数据类型 date 字段,然后它将返回默认变量 {{ date_vi }} 我已定义为 '1900-00-00',但出现错误:

dbt.adapters.snowflake.column.SnowflakeColumn object' has no attribute 'isdate 这告诉我没有 is_date() 这令人困惑,因为 is_date () 在雪花上正常工作。

我现在在 dbt 文档上注意到了:

https://docs.getdbt.com/reference/dbt-classes#column

以及snowflake在github上的源代码:

https://github.com/dbt-labs/dbt-snowflake/blob/main/dbt/adapters/snowflake/column.py

雪花适配器实际上不提供 is_date(),我尝试使用的代码是:{% elif col.is_date() %}{{ date_vl }} 所以我想知道检查列是否为日期 datatype 的最佳方法是什么?希望我已经解释得够多了,因为我还是个新手。

干杯。

最佳答案

关于sql - 使用数据构建工具(dbt)和雪花,如何检查列是否为日期字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70611726/

相关文章:

python - jinja2 python 循环 json

snowflake-cloud-data-platform - 在不同的仓库中运行增量刷新而不是完全刷新

aws-lambda - Snowflake 的异步外部函数不遵守 HttpStatus 429

split - 如何拆分 CSV 或 JSON 文件以实现最佳 Snowflake 摄取?

sql - 如何从查询中获取值到变量

java - mysql 严格模式下的 Hibernate 行为

sql - 一对一表关系 - 在两个表中保持关系是否有害?

php - 何时使用 transient ,何时不使用?

变量内的 Python (Jinja2) 变量

python - 在Python的Tornado框架中连接两个字符串变量