Amazon Athena中YYYYMMDD格式字符串转日期失败求助
解决Athena中YYYYMMDD格式字符串转日期的问题
以下是几种可靠的解决方法,直接在Athena的SQL查询中使用即可:
方法1:正确使用
date_parse函数
多数失败情况是因为格式字符串写错了,针对YYYYMMDD格式,必须用%Y%m%d作为格式参数:SELECT date_parse(your_date_column, '%Y%m%d') AS converted_date FROM your_table;注意:
%Y代表4位年份,%m代表两位月份(01-12),%d代表两位日期(01-31),大小写不能混淆——比如%M会解析月份全称(如January),并非数字格式。方法2:拆分拼接后转日期
如果date_parse仍有问题,可以手动拆分字符串为年、月、日,拼接成标准的YYYY-MM-DD格式后再转换:SELECT cast( concat( substr(your_date_column, 1, 4), '-', substr(your_date_column, 5, 2), '-', substr(your_date_column, 7, 2) ) AS date ) AS converted_date FROM your_table;方法3:通过时间戳转换
借助to_unix_timestamp将字符串转成时间戳,再用from_unixtime转成日期:SELECT cast(from_unixtime(to_unix_timestamp(your_date_column, 'yyyyMMdd')) AS date) AS converted_date FROM your_table;
如果需要永久将该字段转为日期类型,可以用CTAS(Create Table As Select)创建新表,后续查询无需重复转换:
CREATE TABLE your_new_table WITH (format = 'Parquet') AS SELECT -- 保留其他需要的字段 date_parse(your_date_column, '%Y%m%d') AS converted_date FROM your_table;
内容的提问来源于stack exchange,提问作者Salman Khan
相关产品推荐
相关产品推荐

