Ecart entre deux dates sur une colonne

Résolu
jpvito Messages postés 12 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 18 avril 2012 - 18 janv. 2012 à 12:23
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 - 18 janv. 2012 à 13:11
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

cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
18 janv. 2012 à 13:08
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.
3
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
18 janv. 2012 à 13:11
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.
3