Maison >base de données >tutoriel mysql >Comment calculer la durée d'une tâche en fonction des heures de bureau dans Oracle SQL ?
Le calcul de la durée d'une tâche en fonction des heures de bureau est une exigence courante dans systèmes de gestion du personnel. La formule standard permettant de calculer le nombre d'heures entre une heure de début et une heure de fin n'intégrerait pas les heures de travail, ce qui pourrait entraîner une surestimation des heures. Pour résoudre ce problème, nous pouvons exploiter les solides capacités de manipulation de date et d'heure d'Oracle SQL pour ajuster le calcul en fonction des heures de bureau spécifiées.
Les exemples de données fournis contiennent des informations sur les tâches, les heures de début et de fin. La tâche consiste à calculer la durée de chaque tâche en tenant compte des heures de bureau, qui vont du lundi au samedi de 8h00 à 18h00.
Une approche consiste à utiliser une requête hiérarchique corrélée pour générer des jours de travail distincts. puis résumez les heures de chaque jour. La requête génère une ligne distincte pour chaque journée de travail potentielle pour chaque tâche. Il calcule ensuite l'heure de début de la journée de travail en déterminant l'heure ultérieure entre l'heure de début de la tâche et 8h00 ce jour-là. L'heure de fin est calculée de la même manière, en utilisant la valeur la plus basse entre l'heure de fin de la tâche et 18h00 ce jour-là.
Une fois les heures de début et de fin de chaque journée de travail déterminées, le nombre total d'heures peut être calculé en soustrayant l’heure de début de l’heure de fin. Les heures quotidiennes sont ensuite additionnées pour arriver au total des heures consacrées à chaque tâche.
Une solution alternative consiste à utiliser une formule qui tient directement compte des heures de travail. Cette formule considère plusieurs aspects :
Multiplier cette formule par 24 la convertit en minutes puis la diviser par 15 donne le nombre d'heures de travail.
Les deux solutions calculent efficacement la durée des tâches en fonction de la heures de travail spécifiées, garantissant un suivi et un reporting précis du temps passé sur les tâches. Le choix entre les deux approches dépend de facteurs tels que la taille de l'ensemble de données, les considérations de performances et les exigences spécifiques de l'entreprise.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!