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

DB2数据库如何获取当前月份的第一天与最后一天日期

DB2获取当月首末日及动态日期重叠判断实现

获取当前月份第一天

直接通过日期偏移计算即可,逻辑为当前日期减去「当日在月内的天数减1」的天数偏移,就能回到当月1号:

-- 返回值示例:当前日期为2022-06-29时,返回2022-06-01
CURRENT DATE - (DAY(CURRENT DATE) - 1) DAYS

获取当前月份最后一天

有两种常用写法:

  • 直接使用DB2内置的LAST_DAY()函数,传入日期即可返回对应月份的最后一天,写法最简洁:
    -- 返回值示例:当前日期为2022-06-29时,返回2022-06-30
    LAST_DAY(CURRENT DATE)
    
  • 若使用的DB2版本不支持LAST_DAY(),可以通过日期偏移计算:先取当月第一天,加1个月到下月第一天,再减1天即为当月最后一天:
    CURRENT DATE - (DAY(CURRENT DATE) - 1) DAYS + 1 MONTH - 1 DAY
    

动态当月区间的重叠判断写法

把原有硬编码的固定日期替换成上面的动态日期表达式即可,修正原语句缺失的左括号后完整写法如下:

(cast(JOB.FOMDATE as DATE), cast(JOB.TOMDATE as DATE)) 
OVERLAPS (
  cast((CURRENT DATE - (DAY(CURRENT DATE) - 1) DAYS) as DATE), 
  cast(LAST_DAY(CURRENT DATE) as DATE)
)

注意:OVERLAPS判断区间时默认遵循左闭右开规则,如果需要包含最后一天的全天数据,可根据业务需求将最后一天的日期加1天调整边界。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:39:13