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

如何在MySQL中判断datetime等于明日日期并查询对应表数据?

在MySQL中判断datetime类型是否等于明日日期并检索数据

刚好之前处理过类似的需求,这里给你两种靠谱的实现方式,分别适合不同场景:

方法一:提取日期后直接匹配(简单直观)

因为datetime类型包含时分秒,直接和明日日期字符串比较会漏掉大部分数据,所以我们可以用DATE()函数提取created_at的日期部分,再和明日的日期做对比。

明日日期可以用CURDATE() + INTERVAL 1 DAY或者DATE_ADD(CURDATE(), INTERVAL 1 DAY)来生成,两种写法效果一致。

对应的SQL语句如下:

SELECT * FROM sales_order 
WHERE DATE(created_at) = DATE_ADD(CURDATE(), INTERVAL 1 DAY);

⚠️ 注意:这种方法虽然简单,但因为对created_at字段使用了函数,会导致该字段上的索引失效,如果你的表数据量很大,查询性能可能会受影响。

方法二:范围查询(性能友好,推荐)

如果要利用created_at字段的索引,推荐使用范围查询来匹配明日的所有时间范围——也就是从明日00:00:00开始,到后天00:00:00之前的所有时间。

对应的SQL语句:

SELECT * FROM sales_order 
WHERE created_at >= DATE_ADD(CURDATE(), INTERVAL 1 DAY)
  AND created_at < DATE_ADD(CURDATE(), INTERVAL 2 DAY);

这种写法既覆盖了明日所有的时分秒数据,又能正常使用索引,数据量大的时候优势很明显。

额外说明

如果你的业务场景真的需要精确匹配明日某个特定的时分秒(比如明日12:00:00),那直接把tomorrow_date替换成具体的datetime值即可,比如:

SELECT * FROM sales_order 
WHERE created_at = '2024-05-20 12:00:00';

不过从你的示例来看,应该是要匹配明日一整天的数据,上面两种方法就足够啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:12:56