Найти ошибку на рабочих местах всех заданий, которые выполнялись за ночь [дубликат]

Это только другой способ сделать это, но это очень помогло мне написать здесь:

Наличие этой структуры данных:

X=[1,2,3,4]
Y=['a','b','c','d']
XY=zip(X,Y)

Результат:

In: XY
Out: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

Чем больше pythonic способ распаковать его и вернуться к оригиналу, это, на мой взгляд, это:

x,y=zip(*XY)

Но это возвращает кортеж, поэтому, если вам нужен массив, вы можете использование:

xy=(list(x),list(y))
5
задан bobs 9 October 2010 в 17:36
поделиться

2 ответа

Проверьте этот пост - он показывает, как «декодировать» те столбцы run_date из sysjobhistory.

Вы должны иметь возможность получить записи от последнего 24 часа с запросом примерно так:

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())
9
ответ дан marc_s 21 August 2018 в 10:25
поделиться
  • 1
    Привет, спасибо за ответ. Фактически я выполняю следующий запрос :: select sysjobs.job_id, sysjobs.name, sysjobhistory.step_name, sysjobhistory.message, sysjobhistory.run_status, sysjobhistory.run_date, sysjobhistory.run_time, sysjobhistory.run_duration, sysjobs.date_created , sysjobs.date_modified, sysjobs.version_number из sysjobhistory Внутреннее соединение sysjobs на sysjobhistory.job_id = sysjobs.job_id, как я могу получить запись в соответствии с фильтром datetime – gofor.net 9 October 2010 в 08:42
  • 2
    спасибо & quot; marc_s & quot; его работа отлично ... еще раз спасибо – gofor.net 9 October 2010 в 09:06
  • 3
    Благодаря Marc это очень помогло – Ravia 9 March 2012 в 16:54

Для баз данных после 2000 существует функция в базе данных msdb, которую вы можете вызвать, которая вернет дату и время:

msdb.dbo.agent_datetime(run_date, run_time) as 'RunDateTime'

Если вы используете sql 2000, вы можете скопировать источник этой функции из более позднюю версию и создать ее в вашем экземпляре 2000. Хотел бы я взять кредит на все это, но я изначально нашел это здесь: mssqltips.com

3
ответ дан jj. 21 August 2018 в 10:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: