[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.
JoeHM
Fraîchement OOthentifié
Messages : 2
Inscription : 12 nov. 2010 20:00

[Résolu] Soustraire des heures

Message par JoeHM »

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é 384 fois
Dernière modification par micmac le 13 nov. 2010 21:01, modifié 1 fois.
Raison : Ajouté [Résolu] et la coche de sujet
OpenOffice 3.2.1 sous Windows 7
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 10:42

Re: Soustraire des Heures

Message par Pierre-Yves Samyn »

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

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 http://user.services.openoffice.org/fr/ ... 22#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é 444 fois
JoeHM
Fraîchement OOthentifié
Messages : 2
Inscription : 12 nov. 2010 20:00

Re: Soustraire des heures

Message par JoeHM »

Merci Beaucoup pour ton aide
:super: :super: :super:
OpenOffice 3.2.1 sous Windows 7
Répondre