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

SQL查询:如何仅筛选距离预约时间提前24小时的记录

问题原因

你现有SQL的问题是仅设置了预约时间的下限,未设置上限。datetime > NOW() - INTERVAL 1 DAY 会匹配所有预约时间晚于24小时前的记录,所有尚未到期的预约自然都满足该条件,因此会返回远晚于24小时后才开始的预约数据。

修正方案

你需要同时为datetime字段设置上下限,筛选出「距离预约开始时间刚好差24小时左右的记录,具体区间可以根据你定时脚本的运行频率调整:

  • 若脚本每小时运行一次,可使用如下查询:
SELECT * FROM appointments 
WHERE reminder_email_sent = 0 
AND deleted = 0 
AND datetime BETWEEN NOW() + INTERVAL 23 HOUR AND NOW() + INTERVAL 24 HOUR;
  • 若脚本每15分钟运行一次,可缩小时间区间避免重复匹配:
SELECT * FROM appointments 
WHERE reminder_email_sent = 0 
AND deleted = 0 
AND datetime >= NOW() + INTERVAL 23 HOUR 45 MINUTE
AND datetime < NOW() + INTERVAL 24 HOUR;
注意事项

如果你的数据库时区和业务系统时区存在差异,需要先对齐时间基准,避免因时区偏差导致的提醒发送时间错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:39:03