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

如何在SQL中筛选datetime1前24小时内的datetime2记录?

解决方法

你之前的查询条件只限制了datetime2不晚于datetime1加24小时,这个范围太宽泛——哪怕datetime2比datetime1早几天,也会满足这个条件,所以才会返回所有条目。

要筛选datetime2发生在datetime1前24小时内的条目,需要同时限定两个边界:datetime2要大于等于datetime1减去24小时,并且小于等于datetime1本身。

针对使用DATEADD函数的数据库(如SQL Server)

对应的WHERE子句应该是:

WHERE datetime2 >= DATEADD(HOUR, -24, datetime1) 
  AND datetime2 <= datetime1

针对PostgreSQL

可以用INTERVAL语法计算时间范围:

WHERE datetime2 >= datetime1 - INTERVAL '24 hours'
  AND datetime2 <= datetime1

针对MySQL

使用DATE_ADD函数的写法:

WHERE datetime2 >= DATE_ADD(datetime1, INTERVAL -24 HOUR)
  AND datetime2 <= datetime1

这样就能精准筛选出datetime2落在datetime1前24小时窗口内的所有记录了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:32:04