oracle按时间查询数据,分段式查询怎么做?

比如我有一张A表,A里有个Date类型的b列,这张表每隔1分钟插入一条数据,我现在要做查询,获得的数据是间隔5分钟一条的?请各位帮帮忙!!!急

select id,to_char(time,'yyyy-mm-dd hh24:mi:ss') 

from a 

where mod(to_number(to_char(a.time,'yyyymmddhh24mi'),'9999999999999')

-to_number(to_char((select min(a.time) from a),'yyyymmddhh24mi'),'9999999999999'),5)=0;

写得不好,参考一下

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-08
按插入id取值
select * from t where mod(to_number(id),5)=0;
按时间间隔取值
select * from t where mod(to_number(to_char(intime,'mi')),5)=0;

追问

不行啊!我都试过了

追答

思路是获得分钟数,把能被5整除的数据取出。

追问

嗯``虽然查出的数据还是有些问题!但是也没办法了,

本回答被提问者采纳
第2个回答  2013-10-24
select * from (select lag(b)over(order by b)-b c from a)
where c>5*24/60/60
;追问

你确定可以吗?这条语句不行

追答

select * from (select b-lag(b)over(order by b) c from a)
where c>=5*24*60
是我写错了,因为两个日期想减得到是单位是天

相似回答