Maison >base de données >tutoriel mysql >Comment convertir les résultats MySQL TIMEDIFF au format jour, heure, minute et seconde ?
Problème :
Lors du calcul de l'heure différence entre deux dates et heures en utilisant TIMEDIFF(end_time, start_time) dans MySQL, il renvoie le résultat dans un format tel que "116:12:10", indiquant les heures, les minutes et les secondes. Cependant, le format souhaité est "4 jours 20 heures, 12 minutes, etc."
Solution :
Pour obtenir le format souhaité, vous pouvez utiliser la requête 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>
Exemple d'utilisation :
Remplacez end_time et start_time par vos dates/heures spécifiques :
<code class="sql">SELECT CONCAT( FLOOR(HOUR(TIMEDIFF('2023-03-08 12:34', '2023-03-01 16:45')) / 24), ' days ', MOD(HOUR(TIMEDIFF('2023-03-08 12:34', '2023-03-01 16:45')), 24), ' hours ', MINUTE(TIMEDIFF('2023-03-08 12:34', '2023-03-01 16:45')), ' minutes')</code>
Remarque :
Cette solution ne convient qu'aux décalages horaires inférieurs à 35 jours. Si vous prévoyez un décalage horaire supérieur à 35 jours, envisagez plutôt d'utiliser TIMESTAMPDIFF.
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!