Si vous avez besoin de votre application Web pour traduire les fuseaux horaires par utilisateur, pourquoi ne pas utiliser TIMESTAMP pour tous les champs de date/heure? Considérez que les valeurs TIMESTAMP sont stockées dans UTC et converties dans le fuseau horaire défini pour la connexion lors de la récupération.Pourquoi ne pas utiliser TIMESTAMP de MySQL à travers le tableau?
J'ai posé cette question sur IRC, lu la documentation de MySQL, j'ai beaucoup cherché sur Google et j'ai demandé à mes collègues, et je n'ai pas encore trouvé de raison impérieuse de ne pas utiliser TIMESTAMP.
Note: Je comprends que TIMESTAMP a une gamme limitée de 1970 - 2038; cela ne va pas être un problème dans mon cas. En outre, j'utilise PHP avec MySQL.
Merci pour la réponse, mais je ne comprends pas pourquoi je préfère utiliser DATETIME, étant donné que je devrais faire manuellement les conversions 100s de places dans mon code, où que j'utilise les fonctions de date PHP, quand le gestionnaire de base de données ce travail pour moi. –
Vous devez faire cette conversion de date quand même. TIMESTAMP retournera converti à l'heure du serveur local. Ce n'est pas le fuseau horaire de l'utilisateur. Vous devez stocker vos dates en UTC et les convertir au fuseau horaire de l'utilisateur au niveau de l'interface utilisateur. – Randolpho
Que se passe-t-il si je lance "SET time_zone = 'le fuseau horaire des utilisateurs'" à chaque fois qu'une connexion à la base de données est établie dans la session de l'utilisateur? Est-ce que ce serait une bonne solution, dans votre esprit? –