<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Getting Job History Correctly</title><link>http://sqlblog.com/blogs/allen_white/archive/2012/03/01/getting-job-history-correctly.aspx</link><description>In my last blog post I walked through a way to grab the duration from the EnumHistory method of the JobServer/Job object. As I worked through getting a solution in place for a client I found that the duration calculation was only part of the problem.</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>re: Getting Job History Correctly</title><link>http://sqlblog.com/blogs/allen_white/archive/2012/03/01/getting-job-history-correctly.aspx#42063</link><pubDate>Fri, 02 Mar 2012 06:07:11 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:42063</guid><dc:creator>Jack Donnell</dc:creator><description>&lt;p&gt;Here is a query to use for history. Has some bugs with getting some date history:&lt;/p&gt;
&lt;p&gt;SELECT SERVERPROPERTY('ServerName') [ServerName/Instance]&lt;/p&gt;
&lt;p&gt;,job_name&lt;/p&gt;
&lt;p&gt;,CASE WHEN step_id = 0 then 'Total Run Time' else CAST(step_id as varchar(10))End &amp;nbsp;as step_id&lt;/p&gt;
&lt;p&gt;,step_name&lt;/p&gt;
&lt;p&gt;,datename(DW,run_datetime)StartDate&lt;/p&gt;
&lt;p&gt;,run_datetime&lt;/p&gt;
&lt;p&gt;,run_datetime + CASE WHEN run_duration = '00:00:0*' then '00:00:00' ELSE run_duration END [run_end_time]&lt;/p&gt;
&lt;p&gt;,CASE WHEN run_duration = '00:00:0*' then '00:00:00' ELSE run_duration END run_duration&lt;/p&gt;
&lt;p&gt;,RTRIM(SUBSTRING([Results], 1, 18)+'...') as [Results]&lt;/p&gt;
&lt;p&gt;,Run_status&lt;/p&gt;
&lt;p&gt;FROM&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;SELECT job_name,step_id,step_name, run_datetime,&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUBSTRING(run_duration, 1, 2) + ':' + SUBSTRING(run_duration, 3, 2) + ':' +&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUBSTRING(run_duration, 5, 2) AS run_duration&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,Run_status&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,[Results]&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;FROM&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;(&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SELECT DISTINCT&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;j.name as job_name, step_name,step_id,run_date as rd,&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;run_datetime = CONVERT(DATETIME, RTRIM(run_date)) + &amp;nbsp;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(run_time * 9 + run_time % 10000 * 6 + run_time % 100 * 10) / 216e4,&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;run_duration = RIGHT('000000' + CONVERT(varchar(6), run_duration), 6)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,Run_status&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,h.message [Results]&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FROM msdb..sysjobhistory h&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;inner join msdb..sysjobs j&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on h.job_id = j.job_id&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;) t&lt;/p&gt;
&lt;p&gt;) t &lt;/p&gt;
&lt;p&gt;WHERE &lt;/p&gt;
&lt;p&gt;--job_Name = 'MY IMPORTANT JOB' &amp;nbsp;and -- Specific Job name &lt;/p&gt;
&lt;p&gt;--step_id &amp;lt;&amp;gt; '0' AND -- Show step completion times &lt;/p&gt;
&lt;p&gt;step_id = 0 &amp;nbsp;AND -- Show only the run times &lt;/p&gt;
&lt;p&gt;--step_id = 1 &amp;nbsp;AND -- Show specific step &lt;/p&gt;
&lt;p&gt;run_datetime &amp;gt; CONVERT(varchar(10),GetDate()-1,121) &amp;nbsp;---Current Day&lt;/p&gt;
&lt;p&gt;-- run_datetime &amp;gt;'2012-02-13 02:40:00.000' and run_datetime&amp;lt;'2012-02-13 03:14:00.000' --Date Range&lt;/p&gt;
&lt;p&gt; and run_status = 1 -- Successful(1), Failure(0)&lt;/p&gt;
&lt;p&gt; ORDER BY &amp;nbsp;job_name, step_id, run_datetime; &amp;nbsp;&lt;/p&gt;
</description></item></channel></rss>