Không khó lắm đâu. Hãy nhớ rằng SQL Server luôn giữ thông tin dữ liệu meta về chi tiết nào đang được thực hiện đối với máy chủ một cách chủ động. Tôi sẽ làm điều này để tìm những lỗi mà bạn có thể tạo một proc hoặc chức năng, gọi nó theo phạm vi ngày. Tuy nhiên, tôi đã đưa ra một ví dụ về truy vấn vào lúc này:
use msdb;
declare
@Start int = cast( convert(varchar,
dateadd(ww, datediff(ww, 0, getdate())-1,0) -- last week starting
, 112) as int)
, @End int = cast( convert(varchar,
getdate() -- current datetime
, 112) as int)
;
Select
j.name
, j.description
, cast( cast(jh.run_date as varchar) + ' ' + left(jh.run_time, 2) + ':' + substring( cast(jh.run_time as varchar), 3, 2) as datetime) as TimeRan
, jh.message
, jh.step_id
, jh.step_name
from sysjobs j (nolock)
join sysjobhistory jh (nolock) on j.job_id = jh.job_id
and jh.run_date between @Start and @End
and jh.run_status = 0 -- 0 is failure