Frequently asked questions - Base

From The Document Foundation Wiki
< Faq‎ | Base
Jump to: navigation, search
This page is a translated version of the page Faq/Base/120 and the translation is 91% complete.

Other languages:
Deutsch • ‎English • ‎français • ‎italiano


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