Difference entre deux datetime en heures!!

Signaler
Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010
-
Messages postés
1
Date d'inscription
jeudi 11 mars 2010
Statut
Membre
Dernière intervention
11 mars 2010
-
Bonjour, tout le monde,
je développe sous delphi en relation avec une BD SQL server.
j'ai deux champ de type datetime (de ce genre : DD/MM/YYYY HH:MM:SS)
je veux récuperer la totalité des champs de ma table et aussi la difference entre date_H_debut et date_H_fin, par exemple :
/////////////
select code, nom, date_H_debut, date_H_fin, date_H_fin-date_H_debut as durée, region from Pannes
//////////////
mais j'aimrais bien que la requete me rend la difference en nombre d'heures!!

merci pour votre aide!!

6 réponses

Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
3
Bonjour
SELECT DATEDIFF(hh,date_H_debut,date_H_fin) AS no_of_hours FROM pannes

Dom
Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010

Bonjour,
Merci infiniment Dominique, ça marche, j'ai cherché sur le net, et je n'ai pas trouvé comment rendre le format du résultat en hh:mm:ss ............c'est bien dommage!!

mais j'ai un autre problème, dans ma table j'ai des enregistrements qui ont la valeur de Date_H_fin NULL et dans cas je veux faire DATEDIFF(format, Date_H_debut, GETDATE()) .........
comment je pourrais connaitre la valeur de mon Date_H_fin dans mon select même!!
je suis vraiment bloqué!!

et il y a le format qui ne m'arrange pas!!!!!

merci infiniment pour votre réponse!!
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Salut

Tu as le choix entre
ISNULL('abc', 'def')
http://msdn2.microsoft.com/fr-fr/library/ms184325.aspx
Et
COALESCE('abc', 'def')
http://msdn2.microsoft.com/fr-fr/library/ms190349.aspx

Les deux fonctions on un comportement identique, mais la derniere
a une notion supplementaire avec les arguments
Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010

salut ;
j'ai trouvé une requete sur le net et j'ai pu m'inspirer pour former la requete suivante :
////////////////////
select code , pb, datedebut, datefin,
CONVERT(VARCHAR(8),
dateadd(minute, datediff(minute, datedebut, datefin),0),14) as duree from pannes
///////////////
et puis ça me rend un résultat de type HH:MM:SS mais ERRONé !!!
et quand j'utilise cette requete :
//////////
select code , pb, datedebut, datefin, if datefin is null then

CONVERT(VARCHAR(8),
dateadd(minute, datediff(minute, datedebut, getdate()),0),14)
else

CONVERT(VARCHAR(8),
dateadd(minute, datediff(minute, datedebut, datefin),0),14)
 as duree from pannes
/////////
mais la ça m'affiche syntaxe incorrecte vers le mot  clé 'if'

merci pour votre aide!!
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
3
DATEDIFF(format, Date_H_debut, GETDATE()) ==>
DATEDIFF(format, Date_H_debut, coalesce(datefin,GETDATE())) 

 

Dom
Messages postés
1
Date d'inscription
jeudi 11 mars 2010
Statut
Membre
Dernière intervention
11 mars 2010

Bonjour, j'ai vraiment besoin de votre aide svp

Voila le probleme :
J'ai deux colonnes : Heure_fin et Heure_debut soit Heure_fin = 1 et Heure_debut= 2

Exemple :
Heure_fin= 13:42:42
Heure_debut= 13:34:35


* une requette qui fait (1)-(2) = je stocke le resultat dans une colonne

* une requette qui fait la Somme [(1)-(2)] = je stocke le resultat dans une colonne

* une requette qui fait [(1)-(2)]-[la Somme [(1)-(2)]]


Je vous remercie infiniment

et


Merci Beaucoup a tous le monde