Job history
select job_name, run_datetime, run_duration from ( select job_name, run_datetime, SUBSTRING(run_duration, 1, 2) + ':' + SUBSTRING(run_duration, 3, 2) + ':' + SUBSTRING(run_duration, 5, 2) AS run_duration from ( select DISTINCT j.name as job_name, run_datetime = CONVERT(DATETIME, RTRIM(run_date)) + (run_time * 9 + run_time % 10000 * 6 + run_time % 100 * 10) / 216e4, run_duration = RIGHT('000000' + CONVERT(varchar(6), run_duration), 6) from msdb.dbo.sysjobhistory h inner join msdb.dbo.sysjobs j on h.job_id = j.job_id ) t ) t order by run_datetime desc;
Job history (detailed)
SELECT --sysjobhistory.server, sysjobs.name AS job_name, CASE sysjobhistory.run_status WHEN 0 THEN 'Failed' WHEN 1 THEN 'Succeeded' ELSE '???' END AS run_status, CAST( Isnull(Substring(CONVERT(VARCHAR(8), run_date), 1, 4) + '-' + Substring(CONVERT(VARCHAR (8), run_date), 5, 2) + '-' + Substring(CONVERT(VARCHAR( 8), run_date), 7, 2), '') AS DATETIME) AS [Run DATE], Isnull(Substring(CONVERT(VARCHAR(7), run_time+1000000), 2, 2) + ':' + Substring(CONVERT(VARCHAR(7), run_time+1000000), 4, 2 ) + ':' + Substring(CONVERT(VARCHAR(7), run_time+1000000), 6, 2), '') AS [Run TIME], Isnull(Substring(CONVERT(VARCHAR(7), run_duration+1000000), 2, 2) + ':' + Substring(CONVERT(VARCHAR(7), run_duration+1000000), 4, 2) + ':' + Substring(CONVERT(VARCHAR(7), run_duration+1000000), 6, 2), '' ) AS [Duration], Isnull(Substring(CONVERT(VARCHAR(7), run_time+run_duration+1000000), 2, 2) + ':' + Substring(CONVERT(VARCHAR(7), run_time+run_duration+1000000), 4, 2 ) + ':' + Substring(CONVERT(VARCHAR(7), run_time+run_duration+1000000), 6, 2), '') AS [Total TIME], sysjobhistory.step_id, sysjobhistory.step_name, sysjobhistory.MESSAGE AS Msg FROM msdb.dbo.sysjobhistory INNER JOIN msdb.dbo.sysjobs ON msdb.dbo.sysjobhistory.job_id = msdb.dbo.sysjobs.job_id order by run_date desc;