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

DATETIME VS INT pour stocker l'heure ?

Je n'utiliserais pas INT ou TIMESTAMP pour enregistrer vos valeurs datetime. Il y a le "Year-2038-Problem" ! Vous pouvez utiliser DATETIME et enregistrez vos dates et heures pendant longtemps.

Avec TIMESTAMP ou les types de colonnes numériques, vous ne pouvez stocker qu'une plage d'années de 1970 à 2038. Avec le DATETIME type, vous pouvez enregistrer des dates avec des années de 1000 à 9999.

Ce n'est pas recommandé d'utiliser un type de colonne numérique (INT ) pour stocker les informations datetime. MySQL (et d'autres systèmes également) fournit de nombreuses fonctions pour gérer les informations datetime. Ces fonctions sont plus rapides et plus optimisées que les fonctions personnalisées ou les calculs :https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

Pour convertir le fuseau horaire de votre valeur stockée en fuseau horaire client, vous pouvez utiliser CONVERT_TZ . Dans ce cas, vous devez connaître le fuseau horaire du serveur et le fuseau horaire de votre client. Pour obtenir le fuseau horaire du serveur, vous pouvez voir quelques possibilités sur cette question .