129 votes

Meilleure façon de stocker le temps (hh: mm) dans une base de données

Je veux stocker des temps dans une table de base de données mais n'ai besoin que de stocker les heures et les minutes. Je sais que je pourrais simplement utiliser DATETIME et ignorer les autres composants de la date, mais quelle est la meilleure façon de le faire sans stocker plus d'informations que nécessaire?

160voto

BigJump Points 3236

Vous pouvez le stocker en tant qu'entier du nombre de minutes après minuit:

par exemple.

 0 = 00:00 
60 = 01:00
252 = 04:12
 

Vous auriez cependant besoin d'écrire du code pour reconstituer l'heure, mais cela ne devrait pas être compliqué.

59voto

WebMatrix Points 791

Si vous utilisez SQL Server 2008+, considérez le type de données TIME . Article SQLTeam avec plus d'exemples d'utilisation.

12voto

Seth Points 18568

Stockez simplement une date-heure normale et ignorez tout le reste. Pourquoi passer plus de temps à écrire du code qui charge un int, le manipule et le convertit en un datetime, alors que vous pouvez simplement charger un datetime?

4voto

SQLMenace Points 68670

puisque vous ne l’avez pas mentionné un peu si vous êtes sur SQL Server 2008, vous pouvez utiliser le type de données time, sinon utilisez les minutes depuis minuit.

1voto

mghie Points 25960

Êtes-vous sûr que vous n'aurez besoin que des heures et des minutes? Si vous voulez faire quelque chose de significatif avec elle (par exemple, calculer des intervalles de temps entre deux points de données), ne pas avoir d'informations sur les fuseaux horaires et l'heure d'été peut donner des résultats incorrects. Les fuseaux horaires ne s'appliquent peut-être pas à votre cas, mais l'heure d'été sera certainement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X