Maison >base de données >tutoriel mysql >Comment convertir la sortie TIMEDIFF au format jour, heure, minute et seconde dans MySQL ?
Transformation de la sortie TIMEDIFF au format jour, heure, minute et seconde lisible par l'homme dans MySQL
Relever le défi de la conversion de la sortie de TIMEDIFF dans un format plus convivial qui affiche le décalage horaire en termes de jours, heures, minutes et secondes, de nombreux utilisateurs de MySQL ont cherché une solution. Pour résoudre ce problème, examinons la requête fournie :
SELECT TIMEDIFF(end_time, start_time) AS "total" FROM `metrics`;
Cette requête soustrait sans effort start_time de end_time, ce qui donne le décalage horaire total dans la colonne "total". Cependant, le résultat est présenté dans un format brut, ce qui rend son interprétation difficile en un coup d'œil.
Pour remédier à cela, l'approche suggérée exploite la fonction CONCAT pour assembler les éléments constitutifs du décalage horaire en un format humain. -chaîne lisible. L'instruction SQL suivante accomplit cette transformation :
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')
Remplacez les valeurs d'espace réservé end_time et start_time par les noms de colonnes correspondants dans votre table de métriques.
Cette solution extrait habilement les heures du résultat TIMEDIFF et les convertit en jours si nécessaire. Il ajoute ensuite des heures et des minutes pour former le résultat souhaité. Notez que cette approche convient aux décalages horaires sur une période de 35 jours. Pour les scénarios impliquant des périodes plus longues, des solutions alternatives utilisant 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!