如何在Snowflake中将数字类型日期转换为指定格式字符串
解决方案
你的问题核心是日期格式掩码不匹配:END_DATE是无分隔符的8位数字(比如20300615对应2030-06-15),但你用了带横线的YYYY-MM-DD作为解析格式,导致数据库无法识别格式规则,从而报错。
正确的处理步骤如下:
- 将数字类型的
END_DATE转为字符串 - 用
YYYYMMDD作为格式掩码,把字符串解析成日期 - 最后将日期转为
YYYY-MM-DD格式的目标字符串
对应的SQL语句:
SELECT ID, END_DATE, TO_VARCHAR(TO_DATE(TO_VARCHAR(END_DATE), 'YYYYMMDD'), 'YYYY-MM-DD') AS CONVERTED_DATE FROM MY_TABLE;
如果你的END_DATE存在不足8位的情况(比如202301代表2023-01-01),可以用LPAD补前导零确保格式统一:
SELECT ID, END_DATE, TO_VARCHAR(TO_DATE(TO_VARCHAR(LPAD(END_DATE, 8, '0')), 'YYYYMMDD'), 'YYYY-MM-DD') AS CONVERTED_DATE FROM MY_TABLE;
内容的提问来源于stack exchange,提问作者Angie
相关产品推荐
相关产品推荐

