【发布时间】:2017-01-25 13:04:32
【问题描述】:
我需要一些帮助来查询我的日历/日期表
场景: 我有一个带有日期的“日历”表,用户将设置他的可用日期,通常是一天一天。所以我的表是这样的:
+------+------------+---------------------+---------------------+
| ID | user_id | start_date | end_date |
+------+------------+---------------------+---------------------+
| 1 | 1 | 2016-09-01 08:00:00 | 2016-09-01 16:00:00 |
| 2 | 1 | 2016-09-03 08:00:00 | 2016-09-03 16:00:00 |
| 3 | 1 | 2016-09-04 08:00:00 | 2016-09-04 16:00:00 |
| 3 | 1 | 2016-09-05 08:00:00 | 2016-09-05 16:00:00 |
+------+------------+---------------------+---------------------+
这意味着用户 1 在 1 日、3 日、4 日和 5 日可用。
假设我想查询表并查找用户是否从日期 2016-09-01 08:00:00 到 2016-09-05 16:00:00 可用,此查询必须返回零行,因为用户9 月 2 日不可用。但是如果从日期 2016-09-03 08:00:00 到 2016-09-05 16:00:00 查询,那么它将返回这 3 行。
希望有人能帮我解决这个问题
【问题讨论】:
-
开始日期和结束日期可以不同吗?
-
是的。否则我只会有日期列。但它们不能相互重叠。
-
显示用户可用的所有行没有任何意义。
标签: mysql sql date web calendar