gpt4 book ai didi

mysql - 如何检查所选日期范围是否在另一个日期范围之间

转载 作者:太空宇宙 更新时间:2023-11-03 12:24:09 27 4
gpt4 key购买 nike

我现在的情况是我想将一个日期范围与另一个日期范围相匹配,这可能很简单,但我坚持不懈。

表结构如下

表 - 生命周期

  • life_id
  • li>life_start_date
  • 生命结束日期

然后是如下几条记录

1 - 07/23/2013 - 07/24/2013
2 - 07/15/2013 - 07/25/2015
3 - 03/10/2013 - 03/10/2014

现在我想按日期范围搜索这些记录,并想看看该范围内是否存在生命;例如我想找到 08/01/2013 - 01/01/2014 之间的生活

作为预期的结果,它应该选择 life#2 和 life#3

如何使用 MySQL 查询完成此操作?

非常感谢任何帮助。

最佳答案

这个查询应该这样做:

SELECT 
*
FROM
lifecycles
WHERE
str_to_date(life_start_date, '%m/%d/%Y') <= '2014-01-01'
AND str_to_date(life_end_date, '%m/%d/%Y') >= '2013-08-01';

这基本上意味着在您正在寻找的范围结束之前生命还没有开始,并且生命在范围开始之前没有结束。

由于您以 VARCHAR 格式保存日期,因此您需要使用 str_to_date 函数,这很糟糕,因为 MySQL 将无法利用您在 start_date 或 end_date 列上的任何可能的索引。

关于mysql - 如何检查所选日期范围是否在另一个日期范围之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402934/

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