[Résolu] Soustraire des heures

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.

[Résolu] Soustraire des heures

Messagepar JoeHM » 13 Nov 2010 01:40

Bonjour,

Débutant avec open office Base je souhaiterais savoir quelle est la requête permettant de soustraire 2 champs (Heure_Fin - Heure_Debut) de type TIME et envoyer le résultat sur un 3eme champ (Temps_total)


Merci pour votre aide
Pièces jointes
SoustractHeures.odb
(4.71 Kio) Téléchargé 250 fois
Dernière édition par micmac le 13 Nov 2010 20:01, édité 1 fois.
Raison: Ajouté [Résolu] et la coche de sujet
OpenOffice 3.2.1 sous Windows 7
JoeHM
Fraîchement OOthentifié
 
Message(s) : 2
Inscrit le : 12 Nov 2010 19:00

Re: Soustraire des Heures

Messagepar Pierre-Yves Samyn » 13 Nov 2010 13:46

Bonjour et bienvenue sur ce forum

JoeHM a écrit:Débutant avec open office Base je souhaiterais savoir quelle est la requête permettant de soustraire 2 champs (Heure_Fin - Heure_Debut) de type TIME et envoyer le résultat sur un 3eme champ (Temps_total)


Le principe des base de données est de ne pas stocker le résultat des calculs... puisque justement il s'agit de calculs que l'on peut reproduire à tout moment.

La requête pour calculer une durée :

Code : Tout sélectionner   AgrandirRéduire
SELECT "ID", "Heure_Debut", "Heure_Fin", CAST ( '00:' || DATEDIFF( 'mi', "Heure_Debut", "Heure_Fin" ) || ':00' AS "TIME" ) AS "Temps total" FROM "Table1"


Explications :
  • La fonction DATEDIFF permet de calculer le nombre de minutes séparant les deux heures
  • On concatène le résultat avec des chaînes à zéro représentant heures et secondes. On obtient par exemple : 00:75:00
  • CAST convertit cette chaîne au format TIME (heure)

 Ajout : J'ai oublié de préciser qu'il serait nécessaire de modifier le format d'affichage de la colonne comme expliqué dans ce fil viewtopic.php?f=9&t=24822#p135541
Ceci n'est pas à faire en mode ébauche lors de la confection de la requête mais en mode exécution : afficher les objets "Requêtes", exécuter la requête (double clic sur son nom ou clic droit puis Ouvrir), clic droit sur l'en-tête de colonne > Formatage de colonne pour choisir le format Heure 
Pièces jointes
SoustractHeures.odb
(5.61 Kio) Téléchargé 340 fois
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 11276
Inscrit le : 02 Mai 2006 09:42

Re: Soustraire des heures

Messagepar JoeHM » 13 Nov 2010 19:47

Merci Beaucoup pour ton aide
:super: :super: :super:
OpenOffice 3.2.1 sous Windows 7
JoeHM
Fraîchement OOthentifié
 
Message(s) : 2
Inscrit le : 12 Nov 2010 19:00


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité