Faq/Base/120/fr

From The Document Foundation Wiki
< Faq‎ | Base‎ | 120
Jump to: navigation, search

Comment calculer une durée ?

On dispose de deux champs stockant respectivement une heure de début et une heure de fin.


La requête pour calculer le temps écoulé sera du type :

SELECT "ID", "Heure_Debut", "Heure_Fin", CAST ( '00:' || DATEDIFF( 'mi', "Heure_Debut", "Heure_Fin" ) || ':00' AS "TIME" ) AS "Durée" FROM "Table1"

Explications :

FR.FAQ Base 120 FormatDecimal.png
  • La fonction DATEDIFF permet de calculer le nombre de minutes séparant les deux heures
  • L'opérateur || permet de concaténer 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)
  • Pour le logiciel une date ou un horaire est une valeur numérique dont l'unité correspond à 1 jour. La partie entière correspond à la date et la partie décimale à l'heure
  • L'en-tête de colonne reprenant par défaut la formule utilisée pour le calcul, il est souvent préférable d'ajouter un alias (Durée dans cet exemple).


On peut obtenir le résultat au format horaire en utilisant la fonction TO_CHAR pour formater le résultat :

SELECT "ID", "Heure_Debut", "Heure_Fin", TO_CHAR( CAST ( '00:' || DATEDIFF( 'mi', "Heure_Debut", "Heure_Fin" ) || ':00' AS "TIME" ), 'HH:MI' ) AS "Durée" FROM "Table1"
FR.FAQ Base 120 FormatHoraire.png