日期:2014-05-17  浏览次数:20566 次

SQL数据根据时间每10分钟一组,10分钟里有的随便取一条,没有的挑过

比如数据中的
2011-12-28 13:14:13.000------2011-12-28 13:19:39.000这之间有6条数据随便取一条
2011-12-28 13:20:07.000------2011-12-28 13:28:17.000之间有5条取1条
2011-12-28 13:31:13.000------2011-12-28 13:37:13.000有3条数据取1条

10分钟时间段之内的数据随便取一条,没有的跳过不管,这个该怎么写语句?
SQL 时间 取值

------解决方案--------------------
 
 declare @stime SMALLDATETIME
 declare @etime SMALLDATETIME
set @stime = '2000-01-01 00:00:00'

declare @i INT
set @i=0
SET @etime=dateadd(n,@i,@stime)

DECLARE @tb TABLE(c1 DATETIME )

while   @etime < getdate()
BEGIN
 INSERT INTO @tb
     select TOP 1 crdate  FROM sysobjects WHERE crdate BETWEEN  @stime AND @etime ORDER BY(NEWID())
     set @i=@i+10
     SET @stime=@etime
     SET @etime=dateadd(n,@i,@stime)
end  
SELECT * FROM @tb

--sysobjects  换成你自己表,@tb根据需要进行定义