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

Postgres中如何实现当月首日到下月首日的动态日期筛选查询

Postgres动态筛选当月区间记录实现方案

核心逻辑

利用Postgres内置日期函数自动生成当月首日、下月首日,完全替换硬编码日期,适配定时调度场景无需手动修改。

适配不同字段类型的查询语句

场景1:createdate为日期/时间戳类型

直接使用日期类型比较,性能更优:

SELECT * FROM tbl 
WHERE tbl.createdate > date_trunc('month', CURRENT_DATE)
  AND tbl.createdate < date_trunc('month', CURRENT_DATE) + INTERVAL '1 month';

参数说明:

  • date_trunc('month', CURRENT_DATE):将当前日期截断至当月第一天,返回日期类型,例如当前为2021-11-15时返回2021-11-01
  • date_trunc('month', CURRENT_DATE) + INTERVAL '1 month':自动计算下月第一天,支持自动跨年,例如当前为2021-12-03时返回2022-01-01

场景2:createdate为YYYYMMDD格式字符串类型

将动态生成的日期转为对应格式字符串匹配原有逻辑:

SELECT * FROM tbl 
WHERE tbl.createdate > to_char(date_trunc('month', CURRENT_DATE), 'YYYYMMDD')
  AND tbl.createdate < to_char(date_trunc('month', CURRENT_DATE) + INTERVAL '1 month', 'YYYYMMDD');

效果验证

完全匹配需求的动态日期规则:

  • 11月执行时,条件自动变为createdate > '20211101' and createdate < '20211201'
  • 12月执行时,条件自动变为createdate > '20211201' and createdate < '20220101'
  • 所有跨年、跨月场景均自动适配,无需人工调整查询内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:36:02