Ecart entre deux dates sur une colonne [Résolu]

Signaler
Messages postés
12
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
18 avril 2012
-
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
-
Bonjour

J'ai un table qui trace les lancements de batchs et je cherche à déterminer à quelle fréquence ces batchs sont lancés.

Si je me concentre sur l'un d'eux :
Select Distinct 
  pt.PROCESS_NAME As PROCESS_NAME
, Convert(VARCHAR,pt.START_DT,24) As START_TIME
  From PROCESS_TRACE As pt
 Where pt.PROCESS_NAME = 'AuditFax'
 Order By pt.PROCESS_NAME ASC, START_TIME ASC

J'obtiens le résultat suivant :
PROCESS_NAME	START_TIME
AuditFax	00:00:00
AuditFax	00:00:01
AuditFax	00:00:02
AuditFax	00:00:03
AuditFax	00:00:05
AuditFax	00:00:06
AuditFax	00:00:07
AuditFax	00:00:08
AuditFax	00:00:09
AuditFax	00:00:10
...
AuditFax	23:59:50
AuditFax	23:59:51
AuditFax	23:59:52
AuditFax	23:59:53
AuditFax	23:59:54
AuditFax	23:59:55
AuditFax	23:59:56
AuditFax	23:59:57
AuditFax	23:59:58
AuditFax	23:59:59

Ce que je cherche à obtenir est la fréquence de lancement, c'est à dire un peu plus d'une seconde.

Est-ce que quelqu'un saurait comment faire ?

Merci d'avance,

2 réponses

Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
9
Bonjour Jean-Pierre,

pour moi tu dois passer par une table temporaire qui aura un champ identity et deux champs date (start_time et Next_start_time)

du style

Select Distinct 
        ID = IDENTITY(INT,1,1)
, pt.PROCESS_NAME As PROCESS_NAME
, START_TIME
        , NEXT_START_TIME = START_TIME /* pour initialiser bidon mais avoir le bon type*/
into #tmp
 From PROCESS_TRACE As pt
 Where pt.PROCESS_NAME = 'AuditFax'
 Order By START_TIME ASC

select t1.PROCESS_NAME,ecart=datediff(ms,t2.NEXT_START_TIME,t1.START_TIME)
from #tmp t1,#tmp t2
where t2.ID = t1.ID + 1

drop table #tmp


Attention je ne l'ai pas testée.

Bonne journée



Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
9
non il faut inverser

select t1.PROCESS_NAME,ecart=datediff(ms,t1.START_TIME,t2.NEXT_START_TIME)




Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.