MySQL如何查询指定日期落在起止日期区间内的表记录?
正确的SQL查询语句
你的问题出在end字段的条件判断上,原语句里end <= '2023-01-13'会筛选出结束日期早于等于指定日期的记录,而你需要的是指定日期落在start和end区间内,也就是指定日期要大于等于start,同时小于等于end。
正确的查询语句如下:
SELECT * FROM pr_calendar WHERE start <= '2023-01-13' AND end >= '2023-01-13';
验证说明
结合你的表数据:
- room 5的
start是2023-01-07,end是2023-01-14,2023-01-13满足2023-01-07 <= 2023-01-13 <= 2023-01-14,会被筛选出来; - room 6的
end是2023-01-05,早于2023-01-13,不满足条件,不会被返回。
这样就能得到你需要的、指定日期落在区间内的记录了。
内容的提问来源于stack exchange,提问作者user1272597
相关产品推荐
相关产品推荐

