web-dev-qa-db-fra.com

Temps de stockage avec des millisecondes dans la base de données

Juste une question rapide concernant le stockage de "temps" dans une base de données. Je suis enregistré l'heure des utilisateurs exécutions qui se trouvent au format 00: 00: 00: 00 (heures, minutes, secondes, millisecondes).

J'allais à l'origine le stocker comme TIME mais j'ai réalisé que MySQL ne prend pas en charge les millisecondes de ce type.

Je vais stocker le temps réel pris à partir du chronomètre des utilisateurs, pas le moment où ils ont couru et fini (cela sera calculé avant d'être inséré).

Quel serait le meilleur type de champ à utiliser? Je pensais soit double _ float, mais je ne suis pas sûr que cela fonctionnerait?

10
Elliott

Cela dépend de combien de temps vous voulez mesurer. Si vous n'enregistrez pas d'autres fois plus de 2 ^ 32, ou 4294967296 ms qu'un Int Signé Int est tout simplement bien. Cela correspond à environ 50 jours d'horloge, BTW.

Si vous stockiez des timbres de l'heure unix ou des intervalles plus importants, regardez à l'aide de Bigint. Cela vous donne 8 octets d'espace ou la capacité d'enregistrer des temps à la longueur de 1,84467440737096E + 19 ms (qui est environ 500 millions d'années)

2
atxdba