查询历史记录的时候,比如1分钟插入一条记录,但是这些记录基本相同,或者某些字段完全相同
我们想显示在前端的希望过滤掉重复部分或者每隔20分钟,或者5分钟显示一条
declare @checkTime datetime,
@intervarTime int
set @checkTime = '2010-1-1 11:11:51'
set @intervarTime =5
select dateadd(ss, -(DATEPART(ss, @checkTime ) % 60), @checkTime) --- 去掉秒部分---2010-1-1 11:11:00
select datepart(mi, dateadd(ss, -(DATEPART(ss, @checkTime ) % 60), @checkTime)) --- 取分钟部分---
select datepart(mi, dateadd(ss, -(DATEPART(ss, @checkTime ) % 60), @checkTime))%@intervarTime --- 取余分钟部分---
--- 分钟扣掉余数就是最近的一个整点---
select dateadd(mi,
-(datepart(mi, dateadd(ss, -(DATEPART(ss, @checkTime ) % 60), @checkTime))%@intervarTime),
dateadd(ss, -(DATEPART(ss, @checkTime ) % 60), @checkTime)
)
返回值
2010-1-1 11:10:00
把所有的时间都按照这种方式,或者平均,或者取第一条,都能得到想要的