我使用的MySQL 5.6MySQL的TIMEDIFF
我有一个表shift
的列start_time
(TIME)和end_time
(TIME):
+------------+----------+
| start_time | end_time |
+------------+----------+
| 07:00:00 | 16:00:00 |
| 15:00:00 | 23:00:00 |
| 22:00:00 | 07:00:00 |
| 12:00:00 | 21:00:00 |
| 12:00:00 | 09:00:00 |
| 10:00:00 | 20:00:00 |
| 23:00:00 | 01:00:00 |
| 21:00:00 | 05:00:00 |
+------------+----------+
我想找到所有的转变将在未来15分钟结束。以上是样本数据,它可以有几分钟以及顺便说一句。
这是我曾尝试:
SELECT start_time, end_time FROM shift WHERE TIME_TO_SEC(TIMEDIFF(end_time, TIME(NOW()))) < 900;
结果:
+------------+----------+
| start_time | end_time |
+------------+----------+
| 22:00:00 | 07:00:00 |
| 12:00:00 | 09:00:00 |
| 23:00:00 | 01:00:00 |
| 21:00:00 | 05:00:00 |
+------------+----------+
时,我没有在我的表中的任何夜班这个查询应该工作(即当start_time
是大于end_time
)。任何人都可以帮我解决夜班的问题。
你没有主键。这将会非常棘手以至于无法解决。 – Strawberry
@Strawberry请随意假设一个以'id'作为主键的列,就像我在真实应用程序中一样。让我知道是否应该在这里添加它以清楚。 – Jigar
当然你应该! – Strawberry