【问题标题】:check given date exists between two date column in mysql检查给定日期是否存在于mysql中的两个日期列之间
【发布时间】:2016-02-25 07:51:51
【问题描述】:

在我的数据库表中包含 4 个字段,例如:

 id  Start_date     End_date     Package
 --  ---------      ----------   --------
 1   2013-10-25     2014-04-30    pack 1
 2   2014-01-02     2014-04-30    Pack 2
 3   2014-05-01     2015-06-30    pack 3
 4   2015-07-01                   pack 4

我想使用日期(开始 = 2014-01-01 和结束 = 2014-08-13)来检查日期是否在表中的任何日期(开始日期,结束日期)之间。对于这种情况,我想要获取包 1、包 2 和包 3。我该怎么做?

【问题讨论】:

  • 您确定需要提取第 1 包吗?

标签: php mysql


【解决方案1】:

使用mysql的BETWEEN关键字

SELECT * FROM table WHERE ( start_date BETWEEN date_from and date_to ) OR ( end_date BETWEEN date_from and date_to) 

【讨论】:

  • 谢谢你.. 它正在工作.. 需要小改动.. 即 SELECT * FROM table WHERE (( start_date BETWEEN date_from and date_to ) OR ( end_date BETWEEN date_from and date_to))
  • @siva 您的括号对这个解决方案没有任何帮助,如果开始日期在活动结束之前而结束日期在活动开始之后怎么办?
  • 但在我的情况下,我已经给出了另外两个条件......所以它可以工作,兄弟
【解决方案2】:
SELECT * FROM table WHERE '2014-01-01' <= Start_date AND '2014-08-13' >= End_date

【讨论】:

  • 不。但是一个微小的调整会解决它。
猜你喜欢
  • 1970-01-01
  • 2017-07-07
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
相关资源
最近更新 更多