代码之家  ›  专栏  ›  技术社区  ›  geek pédagogique lcms

如何在2列中的sql之间

  •  -1
  • geek pédagogique lcms  · 技术社区  · 6 年前

    一、 我搜索是否可以保留日期,这是我的表时间戳:

    +------------+-----------+-----------------+----------------+-------------+--------------+----------------+--------------+------------+
    | 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;
    

    is request find it,if find it,我们无法保留它,因为此时人类正忙着。 但现在我想请求:

    select * from calendar WHERE reserverStartH >=1524222000  AND reserverEndH <=1524222222;
    

    没有数据,如果没有数据,我就无法保留它,但这是不可能的,因为在1524222000和1524222222中,人类此时正忙着。

    如何查找数据?

    请求发现数据相等我们无法插入新的时间戳人员正忙 请求找不到相等的数据我们可以插入新的时间戳,此时人是自由的

    1 回复  |  直到 6 年前
        1
  •  0
  •   The Impaler    6 年前

    您要检查两个间隔是否有交点。

    例如,如果(a,b)与(c,d)相交。示例:如果(10,20)与(15,25)相交。是的(15,20)。

    查找交叉点是否存在的逻辑条件是: c <= b AND d >= a

    将其转换为SQL:

    select * from calendar 
      WHERE 1524222000 <= reserverEndH AND 1524222222 >= reserverStartH;