【发布时间】:2016-02-22 04:24:20
【问题描述】:
好的,所以这有点令人困惑(这就是我寻求帮助的原因)
我在 MySQL 数据库中有一个如下所示的表:
+-----+-------------+------------+------------+---------------+---------+-----------+---------+
| id | supplier_id | start_date | end_date | days_attended | user_id | client_id | trashed |
+-----+-------------+------------+------------+---------------+---------+-----------+---------+
| 1 | 15 | 1410098400 | 1410703200 | 2 | 7 | 424 | 0 |
| 2 | 84 | 1411912800 | 1420117200 | 3 | 7 | 395 | 0 |
| 3 | 183 | 1390827600 | 1418907600 | 2 | 7 | 96 | 0 |
| 4 | 85 | 1412431200 | 1419512400 | 5 | 7 | 105 | 0 |
| 5 | 168 | 1411912800 | 1412258400 | 3 | 7 | 53 | 0 |
我的困境是我想从这个表格中创建一个报告,该报告将日期范围作为输入,并返回该日期范围内的日期列表。
如您所见,每一行都有一个开始和结束日期。所以我需要一个 SQL 查询,它将使用用户选择的两个日期在这两个日期的每行中搜索一个日期。
即用户选择日期范围:21/09/2015 到 21/12/2015。然后查询将使用表中的现有日期范围查找这些日期之间的日期。
【问题讨论】:
-
如何处理重叠范围?未完全包含在使用规定范围内
-
您希望表格中给出的开始日期和结束日期都在用户指定的两个日期之间吗?
-
表中的两个日期都不需要在指定的日期内。只要一个是或表日期之间的任何日期。