
Code
declare @dt1 datetime,@dt2 datetime ,@tag int ,@factor int
select @dt1='2008-10-15 10:10:10'
select @dt2='2008-10-16 10:10:10'
select @factor=300
select @tag=DATEDIFF ( mi , @dt1 , @dt2)/@factor
SELECT DATEDIFF ( mi , '2008-10-15 10:10:10' , gpstime) as datediffs ,@tag as tag,*
FROM GPSInfo
where DATEDIFF ( mi , @dt1 , gpstime)%@tag=0 and carid=48 and (gpstime between @dt1 and @dt2)
@dt1 开始时间
@dt2 结束时间
@factor 间隔因子
大致思路是:
1、由开始时间和结束时间计算出时间差,时间差除以间隔因子则为间隔时间。
2、DATEDIFF ( mi , '2008-10-15 10:10:10' , gpstime) as datediffs ,@tag as tag 为方便观察数据,实现应用中可以去掉。
3、DATEDIFF ( mi , @dt1 , gpstime)%@tag=0 关键部分
4、(gpstime between @dt1 and @dt2) 时间范围
由于GPSInfo 数据量非常大,查询此表的数据一定要小心,
以此类推:
如果我们TableA中有100万条数据,TableA中ID作为主关键字,现在,我需要每隔10第条查询一条记录出来,则SQL语句的写法如下:

Code
select * from TableA where id%10=0