在mysql where条件中按日期范围检查大厅可用性
我的问题是我想计算两个日期之间的id。但我的书面质询并没有给我要求的答案。样本如下在mysql where条件中按日期范围检查大厅可用性,mysql,Mysql,我的问题是我想计算两个日期之间的id。但我的书面质询并没有给我要求的答案。样本如下 select COUNT(hall_id) as countids from comm_hall_form where hall_id ='13' and ((date(booked_from) between '2019-11-08' and '2019-11-09') or (date(booked_to) between '2019-11-08' and '2019-11-09')) 您需要检查预订
select COUNT(hall_id) as countids
from comm_hall_form
where hall_id ='13' and ((date(booked_from)
between '2019-11-08' and '2019-11-09') or (date(booked_to)
between '2019-11-08' and '2019-11-09'))
您需要检查预订的时间是否完全或部分涵盖了您要求的时间段。现在,您只需检查它是否以该时间段开始或结束
SELECT COUNT(id) as countids
FROM comm_hall_form
WHERE hall_id ='13'
(DATE(booked_from) <= '2019-11-09' AND DATE(booked_to) >= '2019-11-09')
OR
(DATE(booked_from) <= '2019-11-08' AND DATE(booked_to) >= '2019-11-08')
选择COUNT(id)作为countid
从comm_hall_表格
霍尔在哪里
(日期(登记日期)='2019-11-09')
或
(日期(登记日期)='2019-11-08')
如果霍尔id可以重复,则此查询将不会给出正确的结果。请参阅:您的查询不起作用。我解释-:假设13号大厅的预订时间为2019-11-07至2019-11-22。从comm_hall_表单中选择COUNT(hall_id)作为CountID,其中hall_id='13'和('2019-11-08'和'2019-11-09'之间的日期(booked_from))或('2019-11-08'和'2019-11-09'之间的日期(booked_to))这是我的查询,以查找08到09之间预订的大厅,返回0计数。它应该是ID的返回计数,因为08,09的范围是07到22。@dikendrasoni您在第一次写问题时应该已经描述了这一点,但现在它非常简单,我更新了我的答案