Oracle11g 如何在oracle中获取总工作时间?

Oracle11g 如何在oracle中获取总工作时间?,oracle11g,time-tracking,Oracle11g,Time Tracking,我在Oracle11g中有一个如下表 ACT_DTL_ID USER_ID ACTIVITY_TYPE ACTIVITY_TIME 0000000003 DOC000035 LOGIN 03-07-17 12:35:39.000000000 PM 0000000004 DOC000035 LOGOUT 03-07-17 12:41:07.000000000 PM 0000000005 DOC000035 LOGIN

我在Oracle11g中有一个如下表

ACT_DTL_ID  USER_ID   ACTIVITY_TYPE   ACTIVITY_TIME
0000000003  DOC000035   LOGIN           03-07-17 12:35:39.000000000 PM
0000000004  DOC000035   LOGOUT          03-07-17 12:41:07.000000000 PM
0000000005  DOC000035   LOGIN           03-07-17 12:41:28.000000000 PM
0000000006  DOC000035   LOGOUT          03-07-17 12:50:35.000000000 PM
我想计算用户的总工作时间

你能帮帮我吗

select
  sum((x.activity_time - to_date('01.01.2017', 'DD.MM.YYYY') * decode(x.activity_type,'LOGIN',-1,1))
from
  your_table x
;

虽然这仅在列表以登录开始,以注销结束时有效。

我帮助设置了格式。您可能需要计算连续登录和注销之间的差异。。。现在让我们看看你尝试了什么,我们会提供更多帮助!阅读以防万一…谢谢你的评论。我想在登录后立即获得注销时间。一天内可以多次登录和注销。您尝试过吗?