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
.