Bonjour, voici ma fonction utilisateur :
La valeur de retour est à NULL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 CREATE FUNCTION F_COMPTER_HEURES (@ligne int) RETURNS float AS BEGIN DECLARE @duree float; DECLARE @debut DateTime,@fin DateTime; -- declaration du curseur DECLARE CursPlan CURSOR FOR select DEBUT,FIN from PLANNING WHERE FK_LIGNE_CONTRAT=@ligne and PREVU=1 -- ouverture du curseur OPEN CursPlan -- lecture du premier enregistrement FETCH CursPlan INTO @debut, @fin -- boucle de traitement WHILE @@fetch_Status = 0 BEGIN set @duree = @duree + DATEDIFF(minute,@debut,@fin) -- lecture de l'enregistrement suivant FETCH CursPlan INTO @debut, @fin END -- fermeture du curseur CLOSE CursPlan -- libération de la mémoire DEALLOCATE CursPlan RETURN @duree END
J'appelle cette fonction depuis un trigger et ça doit mettre à jour un compteur d'heures...
Mon :
calcule bien la différence en minutes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DATEDIFF(minute,@debut,@fin)
Mais dans @duree, il n'y a visiblement rien...et dans la base, le champ à mettre à jour est à null.
J'ai fait le test de retourner DATEDIFF(minute,@debut,@fin)
ça marche parfaitement...
Avez vous une idée?
Partager