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

AWS Athena获取上月/上年/半年末日期的替代方法咨询

AWS Athena 获取指定期末日期的简化实现

已知AWS Athena基于Presto,但last_day_of_month(x)函数无法正常使用,针对你需要的几个期末日期,这里提供更简洁的实现方式,替代现有脚本:

1. 上月最后一天

原有实现

SELECT date_trunc('month', current_date) - interval '1' day

简化实现

如果你的Athena版本支持Presto的last_day函数(多数新版环境已支持),可以直接用:

SELECT last_day(date_add('month', -1, current_date))

如果last_day也无法使用,原有写法已经足够简洁,也可以等价写成:

SELECT date_trunc('month', current_date + interval '1' month) - interval '1' day

2. 上年最后一天

原有实现

SELECT date_trunc('year',(date_trunc('month', current_date) - interval '1' day)) - interval '1' day

简化实现

无需绕到上月处理,直接取当前年份的第一天减一天即可:

SELECT date_trunc('year', current_date) - interval '1' day

3. 半年末日期(当年6月30日)

原有实现

SELECT date_add('month',6, date_trunc('year',(date_trunc('month', current_date) - interval '1' day)) - interval '1' day)

简化实现

直接定位到当年1月1日,加6个月后取该月最后一天:

SELECT last_day(date_trunc('year', current_date) + interval '6' month)

如果last_day不可用,也可以用:

SELECT date_trunc('month', date_trunc('year', current_date) + interval '7' month) - interval '1' day

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:20:35