如何在Hive中获取季度的最后一天日期
Hive 季度末日期获取方案
可用实现代码
select date_sub(add_months(trunc(add_months(from_unixtime(unix_timestamp()),-(month(from_unixtime(unix_timestamp()))-1)%3),'MM'),3),1) as Lastday_quarter
实现逻辑
- 复用你已验证可用的季度首日计算逻辑,先得到当前时间所属季度的首日
- 调用
add_months()给季度首日加3个月,得到下一季度的首日 - 调用
date_sub()给下一季度首日减1天,自动适配大小月、闰年2月等特殊情况,无需额外判断月份天数
效果验证
你可以替换时间参数做测试,比如验证2021年第四季度的结果:
select date_sub(add_months(trunc(add_months('2021-10-15',-(month('2021-10-15')-1)%3),'MM'),3),1) as Lastday_quarter
运行后返回结果为2021-12-31,符合预期。
内容的提问来源于stack exchange,提问作者karthik adiga
相关产品推荐
相关产品推荐

