如何在AWS Redshift与Athena中无需字符串操作统一转换YYYYMMDD为日期
在AWS Redshift和Athena中统一转换YYYYMMDD字符串为日期
最优通用方案
使用TO_DATE函数,这是两个引擎均支持的原生函数,无需繁琐的字符串拼接操作:
SELECT TO_DATE('20220101', 'YYYYMMDD') AS converted_date;
方案兼容性说明
- Redshift:
TO_DATE函数支持YYYYMMDD作为格式掩码,可直接将8位数字日期字符串转为标准日期类型 - Athena(基于Presto/Trino引擎):同样兼容
TO_DATE函数,传入YYYYMMDD格式参数后,能正确解析目标字符串为日期
现有方案对比
你之前尝试的方案存在兼容性限制或操作冗余:
- Redshift专属方案(Athena不支持):
SELECT CAST('20220101' AS DATE); - Athena专属方案(Redshift不支持):
SELECT CAST(date_parse('20220101','%Y%m%d') AS DATE); - 原通用繁琐方案:
SELECT CAST(SUBSTRING('20220101',1,4) || '-' ||SUBSTRING('20220101',5,2) || '-' ||SUBSTRING('20220101',7,2) AS DATE)
内容的提问来源于stack exchange,提问作者Sam Gilbert
相关产品推荐
相关产品推荐

