gpt4 book ai didi

mysql - 日期时间查询搜索

转载 作者:行者123 更新时间:2023-11-29 05:07:07 24 4
gpt4 key购买 nike

我有一个示例数据库。

 Name          CheckIn                 CheckOut
Jake 2017-08-02 00:00:00 2017-08-05 00:00:00
Rowan 2017-08-07 00:00:00 2017-08-11 00:00:00
Xander 2017-08-08 00:00:00 2017-08-10 00:00:00
Anna 2017-08-09 00:00:00 2017-08-15 00:00:00
Nat 2017-08-11 00:00:00 2017-08-14 00:00:00

例如用户搜索从2017-08-082017-08-10的日期。用户想要搜索日期为8、910 的所有数据。前任。 Rowan 选择 7 日 checkin 日期和 10 日 checkout 日期,因此 rowan 的日期为 7、8、9、10 和 11。这就是我想要的输出。

Name          CheckIn                 CheckOut
Rowan 2017-08-07 00:00:00 2017-08-11 00:00:00
Anna 2017-08-09 00:00:00 2017-08-15 00:00:00
Xander 2017-08-08 00:00:00 2017-08-10 00:00:00

我真的不知道预订搜索的逻辑对我有帮助。谢谢大家。

最佳答案

如果你想检查重叠间隔,那么就是这样:

SELECT Name, CheckIn, CheckOut
FROM mytable
WHERE CheckIn <= '2017-08-10' AND CheckOut >= '2017-08-08';

Demo here

为了更好地理解这一点,您可以画一个草图来描述搜索区间 [2017-08-08, 2017-08-10] 与预订区间 [CheckIn, CheckOut]:

enter image description here

如果:

  • CheckOut < '2017-08-08' 然后预订间隔搜索间隔
  • CheckIn > '2017-08-10` 然后预订间隔搜索间隔

因此,如果我们希望区间重叠,则上述条件均不成立。所以我们最终得到以下谓词:

`CheckOut` >= '2017-08-08' AND `CheckIn` <= '2017-08-10`

关于mysql - 日期时间查询搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45901967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com