Bonjour,

J'avais un besoin similaire à ce problème sous Oracle mais comme il m'a permis d'avancer, je préfère vous donner la solution que j'ai retenue.
J'avais des suites de temps de résolution de la forme 45:25, 25:34 indiquant des minutes et des secondes.

Mon objectif était de les moyenner.

J'ai donc créé deux fonctions :
  1. une pour transformer les horaires en secondes
  2. une pour transformer des secondes selon le format horaire

Entre les deux, une simple moyenne à calculer.

Voilà la méthode d'utilisation pour calculer une moyenne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT     dbo.transformation_seconde_en_MM_SS(AVG(dbo.transformation_MM_SS_en_seconde (Tps) )) as tps_moyen_conv_global
FROM         dbo.Pilotage
WHERE dateappels >= '20110101' 
AND dateappels < '20110201'

Mes deux fonctions sont les suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
-- Fonction créée pour www.magdales.com
 
CREATE FUNCTION [dbo].[transformation_MM_SS_en_seconde] 
	(
	@duree varchar(10)
	)  
 
RETURNS int AS  
BEGIN 
 
return SUBSTRING(@duree, 1, CHARINDEX(':', @duree) - 1) *60 + REVERSE ( SUBSTRING( REVERSE(@duree),1, CHARINDEX(':', REVERSE(@duree)) -1 ))
 
END
Et :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
-- Fonction créé pour www.magdales.com
 
CREATE FUNCTION [dbo].[transformation_seconde_en_MM_SS] 
	(
	@duree int
	)  
 
RETURNS varchar(10) AS  
BEGIN 
 
return cast (@duree/60 as varchar(10))+ ':' + RIGHT('00'+ cast ( @duree % 60  as varchar(10) ), 2)
 
END
J'espère que cela pourra aider. Pas forcément à les utiliser telles quelles, mais à utiliser la mécanique des fonctions en SQL-Server ^^

Kéké