You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Athena日期时间格式转换求助:YYYYMMDD转日期、时分秒转时间戳

AWS Athena 日期与时间列格式转换方案

问题根源

你之前的查询失效是因为格式符与原列的数值格式不匹配:原日期列是无分隔符的YYYYMMDD(如20230501),但你用了带横杠的%Y-%m-%d格式符,导致解析失败。


1. 日期列(YYYYMMDD数值)转换

转换为DATE类型

如果需要将数值型日期列转为Athena的DATE类型,先把数值转成字符串,再用date_parse匹配正确格式:

SELECT date_parse(cast(date_column AS varchar), '%Y%m%d') AS date_type_column
FROM your_table;

输出为指定格式字符串(如2023-05-01)

如果要输出带分隔符的日期字符串,用date_format二次处理:

SELECT date_format(
    date_parse(cast(date_column AS varchar), '%Y%m%d'),
    '%Y-%m-%d' -- 可替换为'%Y/%m/%d'得到斜杠分隔格式
) AS formatted_date_str
FROM your_table;

2. 时间列(时分秒数值)转换

转换为TIME类型

同理,先转字符串,用time_parse匹配%H%i%s格式(对应时分秒):

SELECT time_parse(cast(time_column AS varchar), '%H%i%s') AS time_type_column
FROM your_table;

输出为指定格式字符串(如18:34:34)

用time_format格式化输出:

SELECT time_format(
    time_parse(cast(time_column AS varchar), '%H%i%s'),
    '%H:%i:%s'
) AS formatted_time_str
FROM your_table;

3. 组合日期+时间为完整时间戳

如果需要将两列合并成一个TIMESTAMP类型的字段:

SELECT timestamp_parse(
    concat(cast(date_column AS varchar), ' ', cast(time_column AS varchar)),
    '%Y%m%d %H%i%s'
) AS full_timestamp
FROM your_table;

内容的提问来源于stack exchange,提问作者Yordan Trifonov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:02:14