微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Oracle SQL 中将持续时间拆分为每小时间隔?

如何解决如何在 Oracle SQL 中将持续时间拆分为每小时间隔?

我在一个表中有一个用户登录和注销时间的输入表,我需要将输出拆分为每小时的时间间隔。

预先感谢您的任何帮助

这是创建表格的代码片段:

CREATE TABLE table_name (
    userid varchar(255),date_capture DATE,login_hour int,logout_hour int
);

这是测试数据:

INSERT INTO table_name(userid,date_capture,login_hour,logout_hour)  
       VALUES  ('Test1','02-JUN-2020',6,9);
INSERT INTO table_name  (userid,logout_hour)
       VALUES  ('Test2',3,4);

这是预期的输出

enter image description here

解决方法

您可以使用 cte 递归添加一个小时,直到达到目标:

with cte(userid,date_capture,login_hour,logout_hour,target) as (
      select userid,login_hour + 1,logout_hour
      from   table_name
      union all
      select userid,logout_hour + 1,target
      from   cte
      where  logout_hour + 1 <= target
)
select   userid,logout_hour
from     cte
order by userid,login_hour;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?