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

SQL查询语法咨询:筛选结束日期已超过3天的事件

筛选结束日期距今超过3天的事件的SQL语法

核心逻辑是筛选出end_date早于3天前日期的记录,也就是结束日期距今已超过3天。不同SQL数据库的语法略有差异,以下是主流数据库的实现方式:

MySQL/MariaDB

可以用DATE_SUB直接计算3天前的日期,或者用DATE_ADD对end_date做偏移,推荐前者(更利于索引利用):

WHERE end_date < DATE_SUB(CURDATE(), INTERVAL 3 DAY)
ORDER BY date DESC

等价写法:

WHERE DATE_ADD(end_date, INTERVAL 3 DAY) < CURDATE()
ORDER BY date DESC

PostgreSQL

使用CURRENT_DATE结合间隔运算:

WHERE end_date < CURRENT_DATE - INTERVAL '3 days'
ORDER BY date DESC

等价写法:

WHERE end_date + INTERVAL '3 days' < CURRENT_DATE
ORDER BY date DESC

SQL Server

用DATEADD函数实现日期偏移,注意如果end_date是纯日期类型,建议把GETDATE()转为日期类型避免时间部分干扰:

WHERE end_date < DATEADD(DAY, -3, CAST(GETDATE() AS DATE))
ORDER BY date DESC

如果不需要考虑时间部分,也可以简化为:

WHERE end_date < DATEADD(DAY, -3, GETDATE())
ORDER BY date DESC

性能提示

优先选择end_date < (当前日期减3天)的写法,因为这种写法不会对end_date字段做函数运算,数据库可以直接使用end_date上的索引,查询性能更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 10:28:11