从msdb.dbo.sysjobhistory获取最后24小时的工作记录

gof*_*net 7 sql sql-server sql-server-2000

我更新鲜的SQL,我想写一个查询从msdb.dbo.sysjobhistory获取最后24小时的工作记录,但我不能得到因为,在这里我得到run_date和run_time就像number.how我将转换run_date和run_time进入datetime并获取最后24小时的工作记录.

我正在使用SQL Server 2000

提前致谢

mar*_*c_s 11

Check out this post - it shows how to "decode" those run_date columns from sysjobhistory.

You should be able to get the entries from the last 24 hours with a query something like this:

SELECT 
    j.name as JobName, 
    LastRunDateTime = 
    CONVERT(DATETIME, CONVERT(CHAR(8), run_date, 112) + ' ' 
    + STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), run_time), 6), 5, 0, ':'), 3, 0, ':'), 121)
FROM 
    msdb..sysjobs j
INNER JOIN
    msdb..sysjobhistory jh ON j.job_id = jh.job_id
WHERE
    CONVERT(DATETIME, CONVERT(CHAR(8), run_date, 112) + ' ' 
    + STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), run_time), 6), 5, 0, ':'), 3, 0, ':'), 121) > DATEADD(HOUR, -24, GETDATE())
Run Code Online (Sandbox Code Playgroud)