web-dev-qa-db-fra.com

MySQL Stockage Durée Durée - DataType?

Je dois calculer le temps qu'un utilisateur dépense sur site. C'est la différence entre le temps de la déconnexion et l'heure de connexion pour me donner quelque chose comme "M. x a passé 4 heures et 43 minutes en ligne". Donc, pour stocker les 24 heures et 43 minutes, je l'ai dit comme ceci: duration temps pas null

Est-ce valide ou une meilleure façon de stocker cela? J'ai besoin de stocker dans la DB parce que j'ai d'autres calculs, je dois utiliser cela pour + autres cas d'utilisation.

28
Juds

Le stocker comme un nombre entier de secondes sera le meilleur moyen d'y aller.

  • Le UPDATE sera propre et simple - I.E. duration = duration + $increment
  • Comme l'a noté Tristram, il y a limitations à l'utilisation du champ TIME - par exemple. "TIME valeurs peut aller de '-838:59:59' à '838:59:59' "
  • Le formatage d'affichage des jours/HEURES/MINUTES/SECONDES ne sera pas corrigé.
  • L'exécution de votre d'autres calculs sera presque certainement plus claire lorsque vous travaillez avec un champ entier "Nombre de secondes".
42
Riedsio

Je n'utiliserais pas le temps comme vous seriez limité à 24 heures. Les plus faciles de stockeront simplement un entier en minutes (ou secondes en fonction de la résolution dont vous avez besoin).

0
Tristram Gräbener