【问题标题】:Get records in date ranges获取日期范围内的记录
【发布时间】:2016-04-12 09:30:54
【问题描述】:

我需要两个日期范围之间的记录

我在mysql表中有以下记录

**id  start_date  End_date**
1   2016-04-11  2016-04-18
2   2016-04-19  2016-04-19
3   2016-04-20  2016-04-21
4   2016-04-22  2016-04-29
5   2016-05-01  2016-05-01
6   2016-05-08  2016-05-10

我将提供输入 2016-04-18 和 2016-04-24

我的输入值不指向开始和结束日期。它指向日期范围。我的输出应该包含数据范围从(2016-04-18 到 2016-04-24,开始和结束日期)的记录

它应该提供如下输出

**id  start_date  End_date**
1   2016-04-11  2016-04-18
2   2016-04-19  2016-04-19
3   2016-04-20  2016-04-21
4   2016-04-22  2016-04-29

第一条记录是

第二条记录是

第三条记录是

第四条记录是

【问题讨论】:

  • 请再次检查您的查询并更正或详细说明,因为您的表格中没有日期“2016-04-24”。
  • 查询应该得到两端日期范围内的所有记录(开始和结束日期)

标签: mysql


【解决方案1】:

试试这个:

SET @start = '2016-04-18';
SET @end = '2016-04-24';

SELECT id, start_date, end_date
FROM mytable
WHERE end_date >= @start AND start_date <= @end

【讨论】:

  • 感谢您的回答。但查询应检查两列中的开始和结束日期
  • @ManiMuthuPandi:查询将根据给定条件检查两列,因此请检查您最后的各种情况,以确保您是否获得了所需的结果......我这边+1。
  • @ManiMuthuPandi 如果您需要检查重叠间隔,那么这是标准程序。如果不是,请更详细地说明您是如何达到预期结果的。
  • @Giorgos Betsos, Zafar Malik, Giorgos Betsos :最初被误解了,当我在查询中运行时,它按预期提供。感谢您的回答,也感谢您的解释。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
相关资源
最近更新 更多