Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql where条件中按日期范围检查大厅可用性_Mysql - Fatal编程技术网

在mysql where条件中按日期范围检查大厅可用性

在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')) 您需要检查预订

我的问题是我想计算两个日期之间的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(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您在第一次写问题时应该已经描述了这一点,但现在它非常简单,我更新了我的答案