Mysql
 sql >> Base de données >  >> RDS >> Mysql

Compter les heures avec MySQL

Je pensais vous poster la réponse dans la perspective de résumer les problèmes liés à la valeur temporelle auxquels les développeurs et les utilisateurs sont confrontés jusqu'à présent. Il ne s'agit pas seulement de formater.

Vous avez peut-être remarqué ou non qu'il est possible que la somme de votre temps total soit mal calculée par le moteur. De plus, le moteur mysql pourrait renvoyer null bien que vous ayez des valeurs.

Lorsque vous ajoutez/agrégez des valeurs de temps, elles sont converties en nombre et les résultats seront au format numérique. Si vous essayez d'additionner des valeurs de temps comme suit :

par exemple. 01:38:50, 03:40:25 --> devrait idéalement donner 05:19:15

  • Si vous faites Somme (les deux ci-dessus) --> vous obtenez un nombre
  • Si vous utilisez CAST(Sum(the above two) AS TIME) --> vous obtenez null
  • Il existe deux autres possibilités présentées dans l'extrait de code my.

Exemple de référence de code . Il vous montrera les différents résultats dont nous venons de parler. Pour l'instant, il semble que le formatage à trois voies pourrait aider.

time_format(sec_to_time(sum(time_to_sec(logged_duration))),'%h:%i:%s') total_log_duration

Le bogue signalé à MySQL n'est pas encore corrigé.