Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL来获取作业的运行时间_Sql_Oracle - Fatal编程技术网

SQL来获取作业的运行时间

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

我有一个包含事务处理时间的表,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)