mysql在日期范围内选择日期[重复]

Posted

技术标签:

【中文标题】mysql在日期范围内选择日期[重复]【英文标题】:mysql select date inside a date range [duplicate] 【发布时间】:2013-04-02 15:37:47 【问题描述】:

我有以下列:

date_start |日期结束 2013-01-14 | 2013-01-16 2013-01-16 | 2013-03-18 2013-01-22 | 2013-03-21 2013-02-02 | 2013-02-10 2013-03-25 | 2013-03-28

我需要创建一个可以过滤这些记录的 sql 语句

date_start: 2013-01-17 date_end:2013-03-22

找到的结果是:

date_start |日期结束 2013-01-16 | 2013-03-18 2013-01-22 | 2013-03-21 2013-02-02 | 2013-02-10

有人知道怎么做吗?

谢谢

【问题讨论】:

这是一个确定日期范围是否重叠的问题。见[这个答案][1][1]:***.com/questions/325933/… 【参考方案1】:

试试这个

 select * from your_table where date_start >=  '2013-01-17'
                          and   date_end   <=  '2013-03-22'

【讨论】:

【参考方案2】:
SELECT *
FROM table
WHERE date_start BETWEEN '2013-01-17' AND '2013-03-22'
  AND date_end BETWEEN '2013-01-17' AND '2013-03-22'

【讨论】:

【参考方案3】:
SELECT * FROM `table` WHERE `date_start` > '2013-01-17' && `date_end` < '2013-03-22'

您需要将table 替换为您在数据库中的实际表名。

【讨论】:

以上是关于mysql在日期范围内选择日期[重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:选择两个日期范围内的所有数据

在日期/时间范围之间选择数据

选择日期范围内的特定日期

在一个范围内选择最大和最小日期时间

根据到达日期值限制出发日期的日期范围[重复]

SQL在where语句中使用日期范围的选择子查询来确定该日期范围内的最大值