只有当这两个记录之间的时间是15分钟或更长时间时,我才能用sql找到第一个和第二个记录。
让我举一个例子,你可以看到我需要的东西:
ID| Time | Serial |
1| 10:45| 13 |
2| 11:00| 12 |
3| 11:17| 12 |
4| 11:00| 13 |
7| 11:05| 13 |
8| 11:07| 12 |
我需要这样做:
ID| Time | Serial |
1| 10:45| 13 |
的 2| 11:00| 12 |
的 3| 11:17| 12 |
的 4| 11:00| 13 |
7| 11:05| 13 |
8| 11:07| 12 |
输出如下:
Time 1 | Time 2 | Serial | Usage
10:45 | 11:00 | 13 | 15min
11:00 | 11:17 | 12 | 17min
编辑:
我只需要使用相同的序列号同时比较2条记录。当然要通过所有记录。
我在时间列中有这种类型的数据:2012-09-06 16:53:05.581
答案 0 :(得分:1)
也许是这些方面的东西:
SELECT
time1.time,
time2.time,
time1.serial,
(time2.time - time1.time) / 60 AS usage
FROM
mytable time1,
mytable time2
WHERE
time1.id != time2.id
AND time1.serial = time2.serial
AND time2.time - time1.time > 60 * 15
我不熟悉MySQL中的时间处理 - 我假设它们可以被减去,并且差异在几秒钟内。如果需要显式转换,请在此处使用函数。
附录:这应该处理成对的记录条目。但是如果有三个,它们之间有15分钟,那么这将产生1-2,2-3和1-3,所以你可能需要稍微修改它。