• Below is a script that will get you information about all the jobs that ran between a two dates. I was not able to figure out how to get you between specific times (I only had a few minutes to put this together). Nonetheless, this should get you a closer to what you are looking for...

    USE msdb

    DECLARE @startDate date='9/1/2013',

    @endDate date='10/1/2013';

    WITH job_step_history AS

    (

    SELECTj.name AS job_name,

    j.[description] AS job_description,

    jh.step_id AS step,

    jh.step_name,

    js.command AS step_command,

    CONVERT(datetime,CAST(jh.run_date AS char(8))) AS run_date,

    left(replace(right(convert(varchar,dateadd(millisecond,jh.run_time,'00:00:00:000'),21),12),'.',':'),11) AS run_time,

    jh.run_duration

    FROM sysjobhistory jh

    JOIN sysjobs j ON jh.job_id=j.job_id

    LEFT JOIN sysjobsteps js ON jh.job_id=js.job_id AND jh.step_id=js.step_id

    )

    SELECT *

    FROM job_step_history

    WHERE run_date>=@startDate

    AND run_date<=@endDate

    "I cant stress enough the importance of switching from a sequential files mindset to set-based thinking. After you make the switch, you can spend your time tuning and optimizing your queries instead of maintaining lengthy, poor-performing code."

    -- Itzik Ben-Gan 2001