Работа с sysjobs и sysjobhistory на SQL Server, и я искал его, но я не могу найти прямой ответ на этот вопрос. Я думаю, что это потому, что я пытаюсь сделать это в предложении WHERE.Преобразование INT в DATE в выражении WHERE - TSQL
Так что в основном попытка выбрать задание, которое потерпело неудачу, в тот же день, в котором он работал (в основном сегодняшняя дата), так как текущий код выбирает все существующие задания, которые не удались.
Ниже мой код:
SELECT DISTINCT
sj.name,
COUNT(sjh.instance_id) AS errors
FROM
msdb..sysjobhistory sjh
JOIN
msdb.dbo.sysjobs sj ON sj.job_id = sjh.job_id
WHERE
name IN ('SQLAgentJob1', 'SQLAgentJob2')
AND sjh.run_status = 1
AND (SELECT CONVERT(DATE, CONVERT(INT, sjh.run_date), 112)) = (SELECT CONVERT(DATE, GETDATE(), 112))
GROUP BY
sj.name
я получаю сообщение об ошибке с указанием:
Msg 529, Level 16, состояние 2, строка 13
Явного преобразования типа данных междунара на сегодняшний день не допускается.
Любые идеи?
В чем смысл этих подзапросов? –
Я предполагаю, что это не должно быть в подзапросе? – AznDevil92
Это не корень проблемы, но они не должны быть подзапросами. –