;
WITH MScte
AS (
SELECT h.server,
h.job_id,
h.run_duration,
h.run_date,
h.run_time,
CASE LEN(h.run_duration) WHEN 1 THEN '00:00:0' + CONVERT(CHAR(1), h.run_duration)
WHEN 2 THEN '00:00:' + CONVERT(CHAR(2), h.run_duration)
WHEN 3 THEN '00:0' + CONVERT(CHAR(1), LEFT(h.run_duration, 1)) + ':' + CONVERT(CHAR(2), RIGHT(h.run_duration, 2)) WHEN 4 THEN '00:' + CONVERT(CHAR(2), LEFT(h.run_duration, 2)) + ':' + CONVERT(CHAR(2), RIGHT(h.run_duration, 2))
WHEN 5 THEN '0' + CONVERT(CHAR(1), LEFT(h.run_duration, 1)) + ':' + LEFT(RIGHT(h.run_duration, 4), 2) + ':' + CONVERT(CHAR(2), RIGHT(h.run_duration, 2))
ELSE CONVERT(VARCHAR(4), LEFT(h.run_duration, LEN(h.run_duration) - 4)) + ':' + LEFT(RIGHT(h.run_duration, 4), 2) + ':' + CONVERT(CHAR(2), RIGHT(h.run_duration, 2))
END AS My_Custom_Run_Duration
FROM msdb..sysjobhistory h
)
SELECT h.SERVER
,j.NAME
,h.run_date
,h.run_time
,h.run_duration
FROM msdb.dbo.sysjobs j
inner join MScte h
--INNER JOIN msdb.dbo.sysjobhistory h
ON h.job_id = j.job_id
ORDER BY j.NAME;