【问题标题】:MySQL query several records from certain date range [duplicate]MySQL查询特定日期范围内的多条记录[重复]
【发布时间】:2017-05-26 21:43:46
【问题描述】:

这是我的记录集:

id   date
-----------------------
1    2017-01-11
2    2017-01-12
3    2017-01-14
4    2017-01-15
4    2017-01-16

我要查询2017-01-14到2017-01-16日期范围内的所有记录

目前我正在使用:

SELECT * FROM foo WHERE (date='2017-01-14' OR date='2017-01-15' OR date='2017-01-16')

有没有更好的方法(对于更大的范围可能会更快)? 谢谢

PS:我知道我可以使用:

SELECT * FROM foo WHERE date >= '2017-01-14' AND date <= '2017-01-16'

但问题是我不希望每天之间有“间隙”。

【问题讨论】:

  • SELECT ... WHERE date BETWEEN '2017-01-14' AND '2017-01-17'之间使用;
  • 差距?什么样的差距?
  • 我的意思是如我的数据所示:有 11,12,13(缺失)、14、.. 所以查询不正确
  • 我没有关注。您甚至都没有查询 13。什么是不正确的?
  • 您的问题不在于选择日期范围,您的问题在于添加缺失的日期。

标签: mysql


【解决方案1】:
SELECT *
  FROM foo
 WHERE date BETWEEN '2017-01-14' AND '2017-01-16';

【讨论】:

  • 如何解决2017-01-13缺少日期的问题?
  • @Barmar 这是对原始问题的回应,没有提到任何关于差距的问题。此外,它完全等同于原始查询,暗示在功能上是正确的。
  • 这不是我的问题。我想删除我的反对票,但除非您编辑答案,否则我不能。但也许你应该删除它,因为问题已被编辑并且不再有用。
猜你喜欢
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多