SQL来获取作业的运行时间
我有一个包含事务处理时间的表,1个批次将触发几个作业。我想为批处理添加每个作业中经过的时间。 事务表的格式如下:SQL来获取作业的运行时间,sql,oracle,Sql,Oracle,我有一个包含事务处理时间的表,1个批次将触发几个作业。我想为批处理添加每个作业中经过的时间。 事务表的格式如下: START_TIME JOB END_TIME 1/7/2012 12:10:24 AA 1/7/2012 12:18:49 1/7/2012 12:10:23 AA 1/7/2012 12:10:23 1/7/2012 12:10:24 AA 1/7/2012 12:10:24 7/7/2012 16:10:33 AA 7/7/2012 1
START_TIME JOB END_TIME
1/7/2012 12:10:24 AA 1/7/2012 12:18:49
1/7/2012 12:10:23 AA 1/7/2012 12:10:23
1/7/2012 12:10:24 AA 1/7/2012 12:10:24
7/7/2012 16:10:33 AA 7/7/2012 16:15:23
7/7/2012 16:10:32 AA 7/7/2012 16:10:32
7/7/2012 16:10:33 AA 7/7/2012 16:10:33
7/7/2012 17:58:21 BB 7/7/2012 19:05:41
7/7/2012 16:40:25 BB 7/7/2012 16:40:25
7/7/2012 17:56:58 BB 7/7/2012 17:56:58
1/7/2012 14:00:11 BB 1/7/2012 14:47:09
1/7/2012 12:40:19 BB 1/7/2012 12:40:19
1/7/2012 13:58:33 BB 1/7/2012 13:58:33
我想要达到的是
DATE JOB TIME SPENT
1/7/2012 AA ADDING THE TIME SPENT for AA on 1/7/2012
7/7/2012 AA ADDING THE TIME SPENT for AA on 7/7/2012
1/7/2012 BB
7/7/2012 BB
我可以知道SQL可以实现预期的结果吗
谢谢 假设
START\u TIME
和END\u TIME
都是DATE
数据类型(而不是TIMESTAMP
或VARCHAR2
),并假设START\u TIME
和END\u TIME
总是在同一天(即不能在1/7晚开始,在1/8早结束)
总数以天为单位。如果您希望获得间隔
返回
SELECT trunc(start_time),
job,
sum( numtodsinterval( end_time - start_time, 'day' ) ) elapsed_interval
FROM your_table
GROUP BY trunc(start_time), job
ORDER BY job, trunc(start_time)
谢谢你的快速回复。。实际上我不知道它是否是时间戳类型,我只是在excel中获取数据。我能把它导入MYSQL并进行计算吗?@IvanChan-你用SQL和Oracle标记了这个问题。但现在你说你没有Oracle数据库,而是有一个Excel电子表格,里面有数据?毫无疑问,您可以将电子表格数据加载到数据库中。但是,如果将数据加载到Oracle以外的其他地方,则需要运行的查询将不同。好的,数据存储在Oracle中,但有人将数据提取到excel中,但我手头没有Oracle DB。谢谢@IvanChan-对你来说,“我手头没有Oracle DB”意味着什么?这是否意味着您无法访问Oracle数据库,也无法要求他人为您运行查询?如果您想从Excel电子表格中的数据开始,我将删除我的答案并编辑您的问题以反映这一事实。不,我将尝试明天上午进行测试,谢谢您的精彩回答!
SELECT trunc(start_time),
job,
sum( numtodsinterval( end_time - start_time, 'day' ) ) elapsed_interval
FROM your_table
GROUP BY trunc(start_time), job
ORDER BY job, trunc(start_time)