就是关于这个帖子的回答
http://topic.csdn.net/u/20090910/15/7300c66d-0829-4608-b287-4eaf1a69274f.html#replyachor
************************************************************发贴人
有张表,很大,里面的数据是每秒一条,有个插入时间列。
现在有3个条件:starttime,endtime,intervaltime
即:取得的数据要符合以下条件:
插入时间在starttime和endtime之间的,但不是每条数据都要,
需要做一个筛选,即时间间隔为intervaltime。 请问这个SQL怎么写?由于表很大,需要SQL语句效率高些,谢谢。
************************************************************
问题解决,感谢2楼的mod和大家的参与,结贴给分。 解决方案(时间间隔部分):
select t.* from t where mod((inserttime-to_date('2009-9-3 8:59:58','yyyy-mm-dd hh24:mi:ss'))*24*3600,intervaltime )=0
************************************************************
我怎么看不懂呢,如果开始时间是2点,要求的时间间隔是2,在3点,4点,5点,6点各插一条数据 ,那依照这个方法是不是4点和6点都取出来了.
http://topic.csdn.net/u/20090910/15/7300c66d-0829-4608-b287-4eaf1a69274f.html#replyachor
************************************************************发贴人
有张表,很大,里面的数据是每秒一条,有个插入时间列。
现在有3个条件:starttime,endtime,intervaltime
即:取得的数据要符合以下条件:
插入时间在starttime和endtime之间的,但不是每条数据都要,
需要做一个筛选,即时间间隔为intervaltime。 请问这个SQL怎么写?由于表很大,需要SQL语句效率高些,谢谢。
************************************************************
问题解决,感谢2楼的mod和大家的参与,结贴给分。 解决方案(时间间隔部分):
select t.* from t where mod((inserttime-to_date('2009-9-3 8:59:58','yyyy-mm-dd hh24:mi:ss'))*24*3600,intervaltime )=0
************************************************************
我怎么看不懂呢,如果开始时间是2点,要求的时间间隔是2,在3点,4点,5点,6点各插一条数据 ,那依照这个方法是不是4点和6点都取出来了.
解决方案 »
- oracle自定义函数问题求助,在线等!
- oralce export
- rhel5.4安装oracle 10.2.0乱码问题
- 现表table中有一字段value ,但字段value的值都为null ,我想给value字段设置默认值都为2 ,请问怎么设置?
- 请教一个SQL语句
- PLSQL的WHEN END 結構問題.
- select column_name as 的问题,急,在线等
- 日期转换
- 两个日期相减得到不是整数,我想把结果用round四舍五入,但提示需要number类型,请问如何把日期相减得到的数转换成
- 我在LINUX怎样可以打开DBA STUDIO
- 数据库里存的值是20060115,查询语句应该怎么写,查出来是2006/01/15
- 求教:fedora10下面如何安装Oracle10g
在这个解决方案的语句里,起始时间是'2009-9-3 8:59:58'
如果时间间隔为2小时,那么如果存在对应记录的话,前3条记录分别会是
'2009-9-3 8:59:58','2009-9-3 10:59:58','2009-9-3 12:59:58'
这里因为乘以3600和24,后面的时间间隔单位是秒你看我的原句应该比较容易理解
select * from tt
where datetime between atarttime and endtime
and mod(datetime-starttime,intervaltime)=0
将datetime在atarttime and endtime 间
并且datetime和starttime的时间间隔为intervaltime的整数倍
将这样的记录提取出来
多谢两位.经常光顾我的帖子.