Maison >base de données >tutoriel mysql >Comment convertir la sortie MySQL TIMEDIFF au format jour, heure, minute, seconde ?
Conversion des sorties de différence de temps au format jour, heure, minute, seconde
Lors du calcul de la différence entre deux valeurs de temps à l'aide de la fonction TIMEDIFF de MySQL, vous pouvez obtenir des résultats au format heures, minutes et secondes. Cependant, il peut y avoir des cas où vous aurez besoin que ce résultat soit affiché de manière plus conviviale, par exemple en affichant le nombre de jours, d'heures, de minutes et de secondes.
Considérez la requête suivante :
<code class="sql">SELECT TIMEDIFF(end_time,start_time) AS "total" FROM `metrics`;</code>
Si les colonnes end_time et start_time contiennent des valeurs telles que « 2023-03-08 12:34:56 » et « 2023-03-04 15:12:34 », la requête renverra le décalage horaire comme '105:08:22'. Bien que cela indique la durée totale de 105 heures, 8 minutes et 22 secondes, ce n'est peut-être pas la représentation la plus pratique pour l'utilisateur.
Pour convertir cette sortie dans un format plus lisible par l'homme, vous pouvez utiliser l'approche suivante :
<code class="sql">SELECT CONCAT( FLOOR(HOUR(TIMEDIFF(end_time,start_time)) / 24), ' days ', MOD(HOUR(TIMEDIFF(end_time,start_time)), 24), ' hours ', MINUTE(TIMEDIFF(end_time,start_time)), ' minutes')</code>
Remplacez end_time et start_time par vos colonnes spécifiques dans la requête. La sortie sera au format « jours heures minutes ». Par exemple, le décalage horaire de « 105:08:22 » s'afficherait sous la forme « 4 jours 9 heures 8 minutes ».
Il est important de noter que cette méthode n'est applicable qu'aux décalages horaires compris dans les 35 jours. Pour les décalages horaires s'étendant sur plus d'un mois, des approches alternatives telles que l'utilisation de TIMESTAMPDIFF() peuvent être plus appropriées.
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!