【问题标题】:mysql check date range in other date rangemysql检查其他日期范围内的日期范围
【发布时间】:2014-03-11 09:15:30
【问题描述】:

我有一个日期范围的行

title | fromDate | tillDate
------------------------------------
my event | 2014-03-12 | 2014-03-13

my event 2 | 2014-03-14 | 2014-03-17

my event 3 | 2014-03-01 | 2014-03-10

my event 4 | 2014-03-01 | 2014-03-09

现在我有第二对日期范围,我想检查事件是否在日期范围内..例如

checkStartDate = 2014-03-10 checkEndStartDate = 2014-03-14

所以范围内将是 "my event" 、 "my event 2" 和 "my event 3" ...

此时我只想尝试获取我的范围之间的所有日期(因此在 2014 年 3 月 10 日和 2014 年 3 月 14 日之间)并为它写一个大查询......但必须有一个更简单的正确的方法是什么?

【问题讨论】:

标签: php mysql date range


【解决方案1】:
SELECT title FROM table WHERE (DATE('2014-03-10') BETWEEN DATE(fromDate) AND DATE(tillDate) OR DATE('2014-03-14') BETWEEN DATE(fromDate) AND DATE(tillDate) OR (DATE('2014-03-10') <= DATE(fromDate) AND DATE('2014-03-14') >= DATE(tillDate)))

【讨论】:

    【解决方案2】:

    使用此代码

    select *  from events_table  where fromDate >= checkStartDate   and tillDate <= checkEndStartDate
    

    【讨论】:

      【解决方案3】:

      试试这个:

      select title from table
      where checkStartDate  <= fromDate 
      and checkEndStartDate <= tillDate
      

      我已经编辑了我的答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-18
        • 2014-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多