如何在Athena中将指定格式日期转换为YYYYMMDD格式?
Athena日期格式转换解决方案
针对你遇到的Nov 29, 2022 11:26:00 PM格式日期转YYYYMMDD的需求,可以通过Athena支持的Presto SQL函数两步实现:
- 解析字符串为日期类型:用
date_parse函数按照原格式解析成timestamp - 格式化为目标格式:用
date_format转成YYYYMMDD字符串,或进一步转成整数
核心SQL示例
转成字符串格式
SELECT date_format(date_parse(your_date_column, '%b %d, %Y %h:%i:%s %p'), '%Y%m%d') AS formatted_date FROM your_table;
转成整数格式
SELECT CAST(date_format(date_parse(your_date_column, '%b %d, %Y %h:%i:%s %p'), '%Y%m%d') AS INTEGER) AS formatted_date_int FROM your_table;
格式符说明
%b:匹配缩写月份(如Nov)%d:匹配两位日期(如29)%Y:匹配4位年份(如2022)%h:匹配12小时制的小时(如11)%i:匹配两位分钟(如26)%s:匹配两位秒数(如00)%p:匹配AM/PM标识
异常处理
如果数据表中存在格式不规范的日期值,可使用try函数包裹解析逻辑,避免查询报错:
SELECT date_format(try(date_parse(your_date_column, '%b %d, %Y %h:%i:%s %p')), '%Y%m%d') AS formatted_date FROM your_table;
解析失败的行将返回null,不会中断整个查询。
内容的提问来源于stack exchange,提问作者nodev_101
相关产品推荐
相关产品推荐

