Это только другой способ сделать это, но это очень помогло мне написать здесь:
Наличие этой структуры данных:
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))
Проверьте этот пост - он показывает, как «декодировать» те столбцы 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())
Для баз данных после 2000 существует функция в базе данных msdb, которую вы можете вызвать, которая вернет дату и время:
msdb.dbo.agent_datetime(run_date, run_time) as 'RunDateTime'
Если вы используете sql 2000, вы можете скопировать источник этой функции из более позднюю версию и создать ее в вашем экземпляре 2000. Хотел бы я взять кредит на все это, но я изначально нашел это здесь: mssqltips.com