Frequently asked questions - Base
Outdated translations are marked like this.
TDF LibreOffice Document Liberation Project Blogs communautaires Weblate Nextcloud Redmine Ask LibreOffice Donner
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 :
- 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"