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

DB2查询当前月数据异常:返回上月结果问题咨询

问题分析与修正方案

你的语句问题出在起始日期多减了1个月,同时结束日期的计算逻辑也指向了上个月,导致整个查询范围落到了上个月。我们以当前日期为9月15日为例拆解计算:

  1. 原起始日期计算:
    CURRENT DATE - (DAY(CURRENT DATE)-1) DAYS 原本能得到当月第一天(9月1日),但你额外减了1个月,最终变成了8月1日。
  2. 原结束日期计算:
    CURRENT DATE - DAY(CURRENT DATE) DAYS 是用当前日期减去当月已过天数,得到的是上个月最后一天(8月31日)。

两者结合,查询范围自然是上个月的数据,而非预期的当月。

修正后的查询语句

要获取当月1日到当月最后一天的数据,有两种写法可选:

方法1:使用LAST_DAY函数(推荐,更简洁)

AND LOG.CHGTS BETWEEN CURRENT DATE - (DAY(CURRENT DATE)-1) DAYS AND LAST_DAY(CURRENT DATE)

方法2:纯日期运算推导(适配不支持LAST_DAY的DB2版本)

AND LOG.CHGTS BETWEEN CURRENT DATE - (DAY(CURRENT DATE)-1) DAYS 
    AND CURRENT DATE + (1 - DAY(CURRENT DATE)) DAYS + 1 MONTH - 1 DAY

验证逻辑(以9月15日为例)

  • 起始日期:CURRENT DATE - (15-1) DAYS → 9月1日
  • 结束日期(用LAST_DAY):LAST_DAY('2024-09-15') → 9月30日
  • 最终范围就是9月1日到9月30日,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:24:53