【问题标题】:In MySQL grab items within start_date and end_date在 MySQL 中抓取 start_date 和 end_date 中的项目
【发布时间】:2013-08-10 09:29:24
【问题描述】:

我的 MySQL 数据库中列出了事件。

事件有一个 start_date(日期)和 end_date(日期)字段。

在我的应用程序中,用户可以使用日历点击特定日期。因此,如果他们今天点击,他们会被带到 /events?day=2013-08-08 并且当天的所有事件都会显示在页面上。

在我开始添加多日活动之前,这一直很好。因为以前我只是向 MySQL 询问 start_date == 用户选择日期的所有事件,所以我只得到当天开始的事件,但我也想要可能在那天之前开始但当天仍在继续的事件。

如何查询这样的项目?在这一天开始的所有事件,或者更早开始但到这一天尚未结束的所有事件。

【问题讨论】:

标签: php mysql


【解决方案1】:

如果尚未为仍在进行的任务设置结束日期:

where '2013-08-08' == start_date or end_date is null

【讨论】:

    【解决方案2】:
    where start_date>='$inputdate' AND end_date<='$inputdate'
    

    应该这样做

    【讨论】:

      【解决方案3】:
      SELECT ...
      FROM yourtable
      WHERE '2013-08-08' BETWEEN start_end AND end_date
      

      在哪里

      foo BETWEEN bar AND baz
      

      是 SQL 的等价物

      (bar <= foo) AND (foo <= baz)
      

      【讨论】:

      • 我相信应该添加OR ('2013-08-08' = start_date OR '2013-08-08' = end_date) 以及您要求BETWEEN 而'on' 也是有效的
      • 不,完全没有必要。 between 包括在内,例如&lt;=,不是&lt;
      猜你喜欢
      • 2014-10-14
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 2021-09-29
      • 2011-11-13
      相关资源
      最近更新 更多