use msdb go Select x.AgentStartTime as BatchStart, sjh2.*, CASE WHEN LEN( CAST(sjh2.run_duration AS varchar) ) > 5 THEN CAST(LEFT(CAST(sjh2.run_duration as varchar), 2) AS int) * 3600 + CAST(SUBSTRING(CAST(sjh2.run_duration as varchar), 3, 2) AS int) * 60 + CAST(RIGHT(CAST(sjh2.run_duration as varchar), 2) AS int) WHEN LEN( CAST(sjh2.run_duration AS varchar) ) = 5 THEN CAST(LEFT(CAST(sjh2.run_duration as varchar), 1) AS int) * 3600 + CAST(SUBSTRING(CAST(sjh2.run_duration as varchar), 2, 2) AS int) * 60 + CAST(RIGHT(CAST(sjh2.run_duration as varchar), 2) AS int) WHEN LEN( CAST(sjh2.run_duration AS varchar) ) = 4 THEN CAST(LEFT(CAST(sjh2.run_duration as varchar), 2) AS int) * 60 + CAST(RIGHT(CAST(sjh2.run_duration as varchar), 2) AS int) WHEN LEN( CAST(sjh2.run_duration AS varchar) ) = 3 THEN CAST(LEFT(CAST(sjh2.run_duration as varchar), 1) AS int) * 60 + CAST(RIGHT(CAST(sjh2.run_duration as varchar), 2) AS int) ELSE sjh2.run_duration END AS Run_Duration_In_Seconds From ( select msdb.dbo.agent_datetime(run_date,run_time) as AgentStartTime, DATEADD(s,DATEDIFF(s,msdb.dbo.agent_datetime(run_date,0), msdb.dbo.agent_datetime(run_date,run_duration)), msdb.dbo.agent_datetime(run_date,run_time)) as AgentStopTime, sjh.* from msdb.dbo.sysjobhistory sjh where job_id = (Select Job_id from msdb.dbo.sysjobs sj where sj.name = 'BackupUserDatabases_Full') and step_id = 0 and msdb.dbo.agent_datetime(run_date,run_time) between '02/16/2013 12:00:00 AM' and '02/23/2013 11:06:53 AM' ) x inner join msdb.dbo.sysjobhistory sjh2 on x.job_id = sjh2.job_id and sjh2.step_id > 0 and sjh2.instance_id < x.instance_id and msdb.dbo.agent_datetime(sjh2.run_date,sjh2.run_time) >= x.AgentStartTime UNION select msdb.dbo.agent_datetime(run_date,run_time) as BatchStartTime, sjh.*, CASE WHEN LEN( CAST(sjh.run_duration AS varchar) ) > 5 THEN CAST(LEFT(CAST(sjh.run_duration as varchar), 2) AS int) * 3600 + CAST(SUBSTRING(CAST(sjh.run_duration as varchar), 3, 2) AS int) * 60 + CAST(RIGHT(CAST(sjh.run_duration as varchar), 2) AS int) WHEN LEN( CAST(sjh.run_duration AS varchar) ) = 5 THEN CAST(LEFT(CAST(sjh.run_duration as varchar), 1) AS int) * 3600 + CAST(SUBSTRING(CAST(sjh.run_duration as varchar), 2, 2) AS int) * 60 + CAST(RIGHT(CAST(sjh.run_duration as varchar), 2) AS int) WHEN LEN( CAST(sjh.run_duration AS varchar) ) = 4 THEN CAST(LEFT(CAST(sjh.run_duration as varchar), 2) AS int) * 60 + CAST(RIGHT(CAST(sjh.run_duration as varchar), 2) AS int) WHEN LEN( CAST(sjh.run_duration AS varchar) ) = 3 THEN CAST(LEFT(CAST(sjh.run_duration as varchar), 1) AS int) * 60 + CAST(RIGHT(CAST(sjh.run_duration as varchar), 2) AS int) ELSE sjh.run_duration END AS Run_Duration_In_Seconds from msdb.dbo.sysjobhistory sjh where job_id = (Select Job_id from msdb.dbo.sysjobs sj where sj.name = 'BackupUserDatabases_Full') and step_id = 0 and msdb.dbo.agent_datetime(run_date,run_time) between '02/16/2013 12:00:00 AM' and '02/23/2013 11:06:53 AM' Order By BatchStart,Step_Id