如何在Snowflake中将儒略日期转换为标准日期(YYYY-MM-DD)
在Snowflake中将儒略日期转换为YYYY-MM-DD格式
儒略日期通常有两种常见格式,对应不同的转换方法,以下是具体实现:
1. 格式为YYYYDDD的儒略日期(包含年份+年内天数)
直接使用TO_DATE函数,指定格式符'YYYYDDD'即可完成转换:
-- 字符串类型的儒略日期 SELECT TO_DATE('2024123', 'YYYYDDD') AS standard_date; -- 结果:2024-05-03 -- 数值类型的儒略日期,需先转为字符串 SELECT TO_DATE(CAST(2024123 AS STRING), 'YYYYDDD') AS standard_date;
2. 格式为DDD的儒略日期(仅年内天数,需指定年份)
如果只有年内天数,需要结合年份计算,有两种方式:
方式一:使用DATE_FROM_PARTS加天数偏移
-- 指定年份为2024,转换第123天 SELECT DATE_FROM_PARTS(2024, 1, 1) + (123 - 1) DAYS AS standard_date; -- 结果:2024-05-03
方式二:拼接年份后用TO_DATE转换
SELECT TO_DATE('2024' || '123', 'YYYYDDD') AS standard_date;
注意事项
- 确保儒略日期的年内天数范围是1-365(闰年为1-366),否则会返回
NULL或报错。 - 如果字段是数值类型,必须先转换为字符串再使用
TO_DATE的格式匹配。
内容的提问来源于stack exchange,提问作者Rajesh Kannan
相关产品推荐
相关产品推荐

