【发布时间】:2019-12-10 12:57:48
【问题描述】:
我得到了这个表操作:
+-----------+---------------------+----------+
| theatreNo | startDateTime | duration |
+-----------+---------------------+----------+
| 1 | 2019-05-12 09:30:00 | 04:50:00 |
| 3 | 2019-05-17 15:05:00 | 02:00:00 |
| 3 | 2019-05-17 16:05:00 | 03:00:00 |
+-----------+---------------------+----------+
我正在尝试查找我们是否有两个操作重叠的剧院,它应该输出以下内容:
+--------+---------------+----------+----------+
| roomNo | startDateTime | firstOp | secondOp |
+--------+---------------+----------+----------+
| 3 | 2019-05-17 | 15:05:00 | 16:05:00 |
+--------+---------------+----------+----------+
这是重叠的,因为一个手术从 15:05 开始,持续时间为 2 小时,而同一个剧院的另一个手术从 16:05 开始,但第一个手术还没有结束。
我不知道是否有某种方法可以计算开始时间和持续时间之间的差异,并将其与下一个操作的开始时间进行比较。
【问题讨论】:
-
你可以使用ADDTIME()和
JOIN -
我认为有一个代理键会很有用:db-fiddle.com/f/rPCAjoDQ79hpjQCzDzyW2P/0
标签: mysql sql database overlap