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

Snowflake日期拼接报错:Function EXTRACT不支持VARCHAR(10)参数类型

问题原因

你传入的日期值是字符串(VARCHAR)类型,但YEAR()和DAYOFYEAR()这类日期函数依赖底层的EXTRACT函数实现,而EXTRACT仅支持DATE/DATETIME类型的输入,不接受字符串,这就是报错的核心原因。

修正后的查询

你需要先把字符串格式的日期转换为DATE类型,再传给日期函数,有两种常见写法:

写法1:在函数内部转换日期类型

SELECT CONCAT(TO_VARCHAR(YEAR(TO_DATE($1, 'YYYY-MM-DD'))), TO_VARCHAR(DAYOFYEAR(TO_DATE($1, 'YYYY-MM-DD')))) 
FROM VALUES ('2022-01-01'), ('1972-10-01')

写法2:在VALUES中直接指定DATE类型

SELECT CONCAT(TO_VARCHAR(YEAR($1)), TO_VARCHAR(DAYOFYEAR($1))) 
FROM VALUES (DATE('2022-01-01')), (DATE('1972-10-01'))

注意:1972年10月1日的年积日是274,所以实际返回结果是1972274,和你预期的19721不符,大概率是你预期值写错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:05:22