关于一条sql语句 不知道怎么写 请教大家

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:16:20
表的结构是这样的 rsID Time rsState
1 2009-6-16 12:37:00 1
1 2009-6-16 12:38:00 2
1 2009-6-16 12:39:00 3
类似这样的记录 假设一共有1000条 同一个rsID 不同的时间(间隔为1分钟)和状态 我想要选择一个时间点,以选择的时间点为中心,然后读取101条记录,就是说大于这个时间点的有50条,小于这个时间点的也是50条。如果记录不满101条的话 就全部读取,也是以选择的时间点为中心,换句话说101是上限。 拜托大家能够把语句写的清楚一点 谢谢大家帮忙了
关于分钟的问题 时间是datetime类型类似这样的2009-6-16 12:37:00 可以直接减50加50的吗? datetime貌似不行吧

试验过了这个能满足你的要求:

select * from 表 where datediff(mi,你要的时间点,Time)<=50 and datediff(mi,你要的时间点,Time)>=-50;

参考截图如下:

---

以上,希望对你有所帮助。

select *
from table
where table.time between (select time-50分钟 from table where time='XXXXX') and (select time+50分钟 from table where time='XXXXX')

不可以直接加减 但是如果你的rsState 不是 unique 就只能从时间上着手 需要进行格式转换

如果rsState