【问题标题】:How to get total working duration in oracle?如何在oracle中获得总工作时间?
【发布时间】:2017-07-03 07:49:40
【问题描述】:

我在 oracle 11g 中有一个如下表

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

我想计算用户的总工作时间。

你能帮帮我吗?

【问题讨论】:

  • 我帮助格式化。您可能需要对 consecutive LOGIN 和 LOGOUT 之间的差异进行总结...现在向我们展示您的尝试,我们将提供更多帮助!阅读How to Ask以防万一……

标签: oracle11g time-tracking


【解决方案1】:
select
  sum((x.activity_time - to_date('01.01.2017', 'DD.MM.YYYY') * decode(x.activity_type,'LOGIN',-1,1))
from
  your_table x
;

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

【讨论】:

  • 感谢您的评论。我想在登录后立即获得注销时间。一天可以有多次登录和注销。
  • 你试过了吗?
猜你喜欢
  • 1970-01-01
  • 2020-01-04
  • 2022-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-25
相关资源
最近更新 更多