You need to enable JavaScript to run this app. 如何编写SQL查询获取距今日向前45天的完整日期区间
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询获取距今日向前45天的完整日期区间

SQL 实现近45天(含当日)日期范围筛选

核心需求说明:筛选逻辑是取日期字段落在「当日往前推算45天的时间节点」到「当日」区间内的所有记录,而非仅匹配45天前对应的单日值

通用实现逻辑

不要用等于(=)运算符匹配筛选日期,要通过范围判断(>= 起始日 AND <= 当日,或等价的BETWEEN语句)覆盖完整时段。

不同常用数据库的具体写法

  • MySQL
    纯日期类型字段直接匹配,无时分秒干扰:
    WHERE order_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 45 DAY) AND CURDATE()
    如果是带时分秒的时间戳字段,对应替换函数为:
    WHERE create_time BETWEEN DATE_SUB(NOW(), INTERVAL 45 DAY) AND NOW()
  • PostgreSQL
    日期偏移可直接搭配INTERVAL语法书写:
    WHERE order_date BETWEEN CURRENT_DATE - INTERVAL '45 days' AND CURRENT_DATE
  • SQL Server
    需通过DATEADD函数计算偏移日期,纯日期字段建议先剥离时间部分,避免漏数:
    WHERE order_date BETWEEN DATEADD(DAY, -45, CAST(GETDATE() AS DATE)) AND CAST(GETDATE() AS DATE)
  • Oracle
    日期类型直接加减整数即可代表对应天数偏移:
    WHERE order_date BETWEEN SYSDATE - 45 AND SYSDATE

常见误区提醒:如果错误使用WHERE order_date = DATE_SUB(CURDATE(), INTERVAL 45 DAY)这类等值判断,只会返回45天前当天的单条/单日记录,完全丢失区间内的其他时段数据,和需求偏差极大。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 22:36:11