MySQL DATE类型字段使用>运算符查询无返回结果原因咨询
问题原因及排查方案
核心直接原因
你当前使用的过滤条件是start_datum > '2016-07-02',而你给出的数据库已有条目示例为2014-07-01,该日期早于2016-07-02,不满足大于的判断条件。如果你的数据库中所有start_datum的取值都小于等于2016-07-02,查询自然不会返回任何结果。
如果确认数据库中确实存在晚于2016-07-02的条目还是查询无结果,可以按以下方向排查:
- 检查查询条件的日期是否书写错误,比如是否混淆了月、日顺序,误写了更大的日期阈值
- 确认PHP运行环境和MySQL服务的时区配置是否一致,时区差异可能导致日期判定出现偏差
- 检查字段实际类型:如果字段实际为DATETIME/TIMESTAMP类型,
start_datum > '2016-07-02'会过滤掉2016-07-02 00:00:00当天的所有数据,如需包含当天可改为start_datum >= '2016-07-02' - 确认PDO连接的数据库实例、查询的表与你查看示例数据的库表完全一致,避免连错测试/生产环境导致结果不符合预期
内容的提问来源于stack exchange,提问作者Pizzucu
相关产品推荐
相关产品推荐

