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

如何编写SQL语句筛选出排除今日前30天内的所有记录

SQL筛选30天以上历史记录的WHERE条件写法

你需要的核心筛选逻辑是保留开票日期早于今日往前推30天的临界点的记录,对应你给出的示例:今日为2021-11-05时,临界点为2021-10-06,所有早于该日期的记录都会被选中,完全符合你的筛选要求。

不同数据库的具体实现写法如下:

  • MySQL / MariaDB 版本
SELECT * FROM table
WHERE INVOICE_DATE < DATE_SUB(CURDATE(), INTERVAL 30 DAY)
  • PostgreSQL 版本
SELECT * FROM table
WHERE INVOICE_DATE < CURRENT_DATE - INTERVAL '30 days'
  • SQL Server 版本
SELECT * FROM table
WHERE INVOICE_DATE < DATEADD(day, -30, CAST(GETDATE() AS DATE))
  • Oracle 版本
SELECT * FROM table
WHERE INVOICE_DATE < TRUNC(SYSDATE) - 30

注意:如果你的INVOICE_DATE字段是带时分秒的时间类型,使用<而非<=可以避免临界点当天的记录被误纳入,完全匹配你给出的筛选规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:27:02