我,我搜索是否可以保留日期,这是我的表时间戳:
+------------+-----------+-----------------+----------------+-------------+--------------+----------------+--------------+------------+
| idReserver | demandeur | reserverAvecQui | reserverWhy | saisieQuant | reserverDate | reserverStartH | reserverEndH | reserverOk |
+------------+-----------+-----------------+----------------+-------------+--------------+----------------+--------------+------------+
| 1 | test.fr | anonyme | Je ne sais pas | 1524167863 | 1524175200 | 1524222000 | 1524240000 | NULL |
+------------+-----------+-----------------+----------------+-------------+--------------+----------------+--------------+------------+
我尝试这个请求SQL:
这是我的要求:
select * from calendar WHERE reserverStartH >=1524222000 AND reserverEndH <=1524240000;
是请求找到它,如果找到它,我们无法重新保留它,因为人在这个时间戳忙。 但现在我想要这个请求:
select * from calendar WHERE reserverStartH >=1524222000 AND reserverEndH <=1524222222;
没有数据,如果不是数据,我无法保留,但是这是不可能的,因为在1524222000和1524222222中人类现在很忙。
我如何查找数据?
请求查找数据相等我们无法插入人类忙的新时间戳 请求找不到数据相等我们可以插入新的时间戳,此时人类是免费的
答案 0 :(得分:0)
您想要检查两个间隔是否有交叉点。
例如,如果(a,b)与(c,d)相交。示例:if(10,20)与(15,25)的交点。它确实(15,20)。
查找交集是否存在的逻辑条件是:c <= b AND d >= a
将其翻译成您的SQL:
select * from calendar
WHERE 1524222000 <= reserverEndH AND 1524222222 >= reserverStartH;