如何取在某一个时间范围内取最前或最后一笔记录
在任何时刻某个时间(如5分钟)范围内如果连续签到,如何取第一笔或最后一笔?比如1000002在07:30到07:32分钟内连续签到3笔,我想取第一笔或最后一笔有效。
010000022012-04-10 07:00:18.000402012-04-10 16:42:38.500
210000022012-04-10 07:30:03.000402012-04-10 16:42:38.560
810000022012-04-10 07:31:03.000402012-04-10 16:43:05.890
910000022012-04-10 07:32:03.000402012-04-10 16:43:11.373
110000022012-04-10 08:00:11.000402012-04-10 16:42:38.560
310000022012-04-10 17:30:21.000402012-04-10 16:42:38.560
410000022012-04-10 18:00:24.000402012-04-10 16:42:38.560
1010000022012-04-10 18:01:24.000402012-04-10 16:43:23.590
1110000022012-04-10 18:02:24.000402012-04-10 16:43:29.390
510000022012-04-10 18:30:12.000402012-04-10 16:42:38.560
710000022012-04-10 18:31:11.000402012-04-10 16:42:38.560
610000022012-04-10 18:31:32.000402012-04-10 16:42:38.560
[解决办法]
select *
from tb t
where not exists(select 1 from tb where id=t.id and datediff(mm,time,t.time)<5)
这个是取第一笔的,没有进行测试