如何在MySQL中通过时间值查询匹配对应时段的所有数据
问题分析
你编写的SQL查询条件逻辑颠倒了:原语句要求start_time大于等于待查询的12:03:00,同时end_time小于等于12:03:00,不存在能同时满足这两个限制的时段,自然无法返回预期结果。
正确查询写法
要判断目标时间落在[start_time, end_time]的区间内,只需调整比较方向即可:
SELECT * FROM ti_mealtimes WHERE start_time <= '12:03:00' AND end_time >= '12:03:00';
执行上述语句即可返回Lunch对应的行数据。
简化写法
如果使用的数据库支持BETWEEN语法,还可以简化查询语句:
SELECT * FROM ti_mealtimes WHERE '12:03:00' BETWEEN start_time AND end_time;
两种写法逻辑完全等价,都能实现查询目标时间所属时段的需求。
内容的提问来源于stack exchange,提问作者Vahn Marty Cagalawan
相关产品推荐
相关产品推荐

