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

如何在Athena中将带GMT的字符串转换为日期类型

解决字符串日期含GMT的解析与年月提取问题

针对你的日期字符串2023-01-31 11:21:33 GMT,可以通过以下两种方式解决解析和提取年月的问题:

方法一:让解析函数识别时区标识

直接在PARSE_DATETIME的格式参数中加入时区匹配符z,它会自动识别末尾的GMT时区,之后再用EXTRACT提取年月:

SELECT
  EXTRACT(YEAR FROM PARSE_DATETIME('yyyy-MM-dd HH:mm:ss z', a)) AS extract_year,
  EXTRACT(MONTH FROM PARSE_DATETIME('yyyy-MM-dd HH:mm:ss z', a)) AS extract_month
FROM your_table;

方法二:先移除末尾的GMT部分

如果你的SQL环境不支持时区匹配符z,可以先通过字符串操作去掉末尾的" GMT",再解析日期:

方式1:截取固定长度的前半部分

SELECT
  EXTRACT(YEAR FROM PARSE_DATETIME('yyyy-MM-dd HH:mm:ss', SUBSTRING(a, 1, LENGTH(a)-4))) AS extract_year,
  EXTRACT(MONTH FROM PARSE_DATETIME('yyyy-MM-dd HH:mm:ss', SUBSTRING(a, 1, LENGTH(a)-4))) AS extract_month
FROM your_table;

方式2:移除指定后缀

SELECT
  EXTRACT(YEAR FROM PARSE_DATETIME('yyyy-MM-dd HH:mm:ss', RTRIM(a, ' GMT'))) AS extract_year,
  EXTRACT(MONTH FROM PARSE_DATETIME('yyyy-MM-dd HH:mm:ss', RTRIM(a, ' GMT'))) AS extract_month
FROM your_table;

注:原方法失败的原因是PARSE_DATETIME的格式字符串没有匹配日期末尾的GMT时区部分,导致解析时识别为格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:21:02