关于sql server取某时间段内相同的数据

早起的虫儿被鸟吃 发布于 2017/06/09 17:17
阅读 369
收藏 0

数据库表有编号1,编号2.。。编号1每3秒存一个数据,编号2每6秒存一个数据。6个小时的数据。。现在取15秒内编号1和编号2 相同时间的数据。。例如:

(编号1)

(编号2)

假设从10:00:00开始,每15秒取一次,取相同时间段的数据,第一次取到的是 :10:00:10 这笔数据;第二次是取到10:00:25这笔数据;第三次是取到:10:0034;10:00:40 这笔数据。。。以此为例。。。。这个该怎么实现???

加载中
0
l
liun

select Top 1 X.* from
(select A.*, B.* from 编号1 A left join 编号2 B on datediff(ss, dateadd(ss,-15,getDate()), B.date_time) >= 0 and B.date_time = A.date_time
where datediff(ss, dateadd(ss,-15,getDate()), A.date_time) >= 0) X order by X.date_time DESC

 

 

没考虑效率的问题,考虑效率的话在子查询里面排序再加个行号,外查询直接去行号为1的

l
liun
回复 @早起的虫儿被鸟吃 : 连接对比相同日期,取最近一条数据;编号1和编号2在同一张表里就自连接
早起的虫儿被鸟吃
早起的虫儿被鸟吃
谢谢,这个能简单的解释一下吗? 然后 编号1和编号2都是在同一张表里呢。。
0
moxiaohei
moxiaohei

SQLServer中如何取得比某个时间点早的记录?或者能否取某天产生的数据?或者能否查询昨天的数据?

返回顶部
顶部