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

MySQL DATETIME类型BETWEEN查询未返回预期结果求助

问题分析与解决方案

哦,这个问题我一眼就揪出症结了——你的BETWEEN条件里的时间顺序完全搞反啦!

核心问题:BETWEEN的参数顺序规则

BETWEEN操作符的逻辑是 字段 BETWEEN 下限值 AND 上限值,它等价于 字段 >= 下限值 AND 字段 <= 上限值。你现在写的查询语句是:

SELECT * FROM dashboard WHERE added BETWEEN "2018-05-08 10:32:32" AND "2018-05-08 10:28:30"

这就相当于要求added同时满足「大于等于10:32:32」并且「小于等于10:28:30」——一个时间不可能同时比晚时间大、比早时间小,自然返回空结果集。

修正后的查询语句

把两个时间的顺序调换,让早的时间在前,晚的时间在后:

SELECT * FROM dashboard WHERE added BETWEEN "2018-05-08 10:28:30" AND "2018-05-08 10:32:32"

要是怕以后再犯类似顺序错误,也可以用显式的>=和<=写条件,逻辑更直观:

SELECT * FROM dashboard WHERE added >= "2018-05-08 10:28:30" AND added <= "2018-05-08 10:32:32"

额外排查点(如果修正后仍无结果)

虽然当前问题99%是时间顺序导致的,但如果调整后还是查不到数据,可以检查:

  • 生产服务器和开发服务器的时区设置是否一致:如果added字段存储的是本地时间,时区差异可能导致查询时的时间解析出现偏差。
  • 数据导入是否完整:确认从生产导出的数据集确实包含你预期的时间范围内的数据,没有在导入过程中丢失或损坏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:05:15