假设我有一张这样的表:
| id | mtime |
...
| 101 | 12:00:00 |
| 102 | 12:01:00 |
| 103 | 12:03:00 |
| 104 | 12:07:00 |
| 105 | 12:08:00 |
| 106 | 13:00:00 |
...
有没有办法查询表格(范围12:00:00-13:00:00)以获得一组缺失值,如下所示:
| mtime |
| 12:02:00 |
| 12:04:00 |
| 12:05:00 |
| 12:06:00 |
| 12:09:00 |
| 12:10:00 |
...
| 12:59:00 |
或至少第一次空出现:
| mtime |
| 12:02:00 |
或最后一个连续的值,打破了链条:
| mtime |
| 12:01:00 |
我在考虑在查询中的某个地方使用ADDTIME(time, '00:01:00')
,但我无法理解。现在我几乎不相信没有更复杂的编码和多个查询就可以实现,但我希望我错过了一些东西。
答案 0 :(得分:1)
生成一个表(TABLE2),它有一整天的时间(如果你真的需要在任何日期), 并写这样的查询
SELECT TABLE2.mtime FROM TABLE2
LEFT JOIN TABLE1 ON TABLE1.mtime = TABLE2.mtime
WHERE TABLE1.mtime IS NULL
还添加最大和最小时间检查条件,因为TABLE2具有所有dat时间。