Difference entre deux datetime en heures!!

Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010
- - Dernière réponse : zaza2010
Messages postés
1
Date d'inscription
jeudi 11 mars 2010
Statut
Membre
Dernière intervention
11 mars 2010
- 11 mars 2010 à 18:08
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!!
Afficher la suite 

6 réponses

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

Dom
Commenter la réponse de dominique.stock
Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010
0
Merci
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!!
Commenter la réponse de cs_othland
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
23
0
Merci
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
Commenter la réponse de nhervagault
Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010
0
Merci
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!!
Commenter la réponse de cs_othland
Messages postés
446
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
3
0
Merci
DATEDIFF(format, Date_H_debut, GETDATE()) ==>
DATEDIFF(format, Date_H_debut, coalesce(datefin,GETDATE())) 

 

Dom
Commenter la réponse de dominique.stock
Messages postés
1
Date d'inscription
jeudi 11 mars 2010
Statut
Membre
Dernière intervention
11 mars 2010
0
Merci
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
Commenter la réponse de zaza2010