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

Oracle数据库中如何筛选上月初及之后的记录?

Oracle 筛选上月初及之后的记录

直接在WHERE子句里添加日期筛选条件即可,核心是用Oracle的日期函数计算出上一个月的第一天,然后让你的日期字段大于等于这个值。

假设你的日期字段名为date_column,修改后的查询如下:

SELECT columnA, columnB 
FROM TableX
WHERE columnA=20
  AND date_column >= TRUNC(ADD_MONTHS(SYSDATE, -1), 'MM');

函数拆解说明:

  • SYSDATE:Oracle内置函数,返回当前系统日期和时间
  • ADD_MONTHS(SYSDATE, -1):将当前日期往前推1个月,比如当前是2022-12-20,这个函数会返回2022-11-20
  • TRUNC(..., 'MM'):把日期截断到当月第一天,结合上面的结果,就能得到上一个月的第一天(比如2022-11-01)

这样不管当前是哪个月份,都能自动筛选出上月初到现在的所有记录,完全符合你要的逻辑:

  • 当前是10月时,筛选9月1日及之后的记录(包含9月和10月)
  • 当前是2022年12月时,筛选2022年11月1日及之后的记录(包含11月和12月)

如果你的日期字段包含时分秒,这个条件也能正常生效,因为TRUNC得到的日期是当月第一天的00:00:00,>=会包含所有从那天开始的时间点。

内容的提问来源于stack exchange,提问作者Fábio Pires

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:01:11