carlfire 2023-06-08 09:44 采纳率: 100%
浏览 63
已结题

Oracle提取时间段内每15分钟一条数据

Oracle需要提取某个时间段内每15分钟一条数据,即遇到采集时间分钟数为0/15/30/45的就提取出来,如果不存在对应时间段所在行的数据,则主动增加时间节点,对应值设为空值
举例如下图所示

img


通过查询,形成下图所示

img

目前我采用的语句是
select * from test_table where cjsj>=开始时间 and cjsj<=结束时间 and to_char(cjsj,'mi') in ('00','15','30','45')
但这样诸如图中 2023/6/7 11:00:00的数据就无法在查询时展示,我该如何修改?
需要的是时间段内每个小时都要展示这4个时间节点(即使原库中未存在此时间点)

  • 写回答

1条回答 默认 最新

  • 心寒丶 优质创作者: 编程框架技术领域 2023-06-08 10:39
    关注

    每十五分钟查一次?这样么,先查询出时间集合,然后关联你的数据表查询 ,可以参考下这个 http://t.csdn.cn/cxNoe

    img

     SELECT a.calcmonthlist  时间
      FROM (SELECT to_date('2023-6-7 00:00:00', 'yyyy-MM-dd hh24:mi:ss') +
                   +15 / 24 / 60 * (ROWNUM - 1) AS calcmonthlist
              FROM DUAL
            CONNECT BY ROWNUM <=
                       (to_date('2023-6-8 00:00:00', 'yyyy-MM-dd hh24:mi:ss') -
                       to_date('2023-6-7 00:00:00', 'yyyy-MM-dd hh24:mi:ss'))*24*(60/15) + 1) a;
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月16日
  • 已采纳回答 6月8日
  • 创建了问题 6月8日