sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Agent Job:Bestem, hvor længe det har kørt

Denne løsning ville fungere:

SELECT DATEDIFF(SECOND,aj.start_execution_date,GetDate()) AS Seconds
FROM msdb..sysjobactivity aj
JOIN msdb..sysjobs sj on sj.job_id = aj.job_id
WHERE aj.stop_execution_date IS NULL -- job hasn't stopped running
AND aj.start_execution_date IS NOT NULL -- job is currently running
AND sj.name = 'JobX'
and not exists( -- make sure this is the most recent run
    select 1
    from msdb..sysjobactivity new
    where new.job_id = aj.job_id
    and new.start_execution_date > aj.start_execution_date
)

Dette er en mere generel kontrol afhængig af systemtabeller. Hvis du foretrækker en tilpasset rute, kan du få jobbet indsat i en joblogtabel, du har oprettet i stedet.



  1. Indstilling af tidsstempel i transaktionen

  2. NodeJS svarede MySQL-tidszonen er anderledes, når jeg henter direkte fra MySQL

  3. MySQL Vælg række med laveste værdi i kolonne

  4. Sammenligning af datoer ved hjælp af Dynamic Action på DatePicker Oracle Apex