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

如何在AWS Athena中更优地将字符串月份转整数生成年月值

在AWS Athena中生成yearmon整数列的最优方案

不用硬编码CASE语句,你可以利用Athena的日期解析和格式化函数来实现,步骤如下:

  1. 拼接日期字符串:把年份(year)和英文月份缩写(month)组合成yyyy-mon格式的字符串,比如2022-jan。
  2. 解析为日期类型:用DATE_PARSE函数将拼接后的字符串转成日期,其中%b是匹配英文月份缩写的格式符(不区分大小写)。
  3. 格式化为年月字符串:用DATE_FORMAT函数把日期转成YYYYMM格式的字符串,比如202201。
  4. 转为整数:最后将字符串类型的年月值强制转为整数。

完整SQL示例:

SELECT
  year,
  month,
  CAST(DATE_FORMAT(DATE_PARSE(CONCAT(year, '-', month), '%Y-%b'), '%Y%m') AS INT) AS yearmon
FROM your_table;

关键点说明

  • 你之前尝试的month("jan")或cast("jan" as date)无效,是因为这些函数都需要日期类型输入,而不是纯月份字符串,必须先把年份和月份组合成可解析的日期格式才能处理。
  • 这个方法无需维护12个CASE分支,只要月份缩写是标准格式(Jan/FEB等大小写都支持)就能正常解析,扩展性和维护性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:32:01