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

Hive SQL如何获取给定日期对应的月起始日期与月结束日期

Hive SQL 月首日/月末日计算异常修复方案

错误根因

  • 格式符使用错误:Hive date_format 函数中,大写DD表示当年的第几天,小写dd才表示当月的第几天,这是你输出9~32序列数字的直接原因。
  • 月末计算逻辑错误:原有通过date_sub对DATA_DATE做减法的逻辑,无法正确推导当月最后一天。

正确计算代码

月起始日期计算

你现有逻辑可正常运行,也可使用更简洁的通用写法:

-- 通用写法,直接取当月1日
date_format(DATA_DATE, 'yyyy-MM-01') AS month_start_date

月结束日期计算

-- Hive 2.1及以上版本,直接调用内置last_day函数
date_format(last_day(DATA_DATE), 'yyyy-MM-dd') AS month_end_date

-- 兼容低版本Hive的写法:次月1日减1天
date_format(date_sub(date_add(date_format(DATA_DATE, 'yyyy-MM-01'), 31), day(date_add(date_format(DATA_DATE, 'yyyy-MM-01'), 31))), 'yyyy-MM-dd') AS month_end_date

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:45:07