Pourquoi MySQL ne prend-il pas en charge la précision en millisecondes/microsecondes et comment contourner ce problème
Le champ TIMESTAMP de MySQL et les fonctions de support sont limités à la seconde -niveau de précision, frustrant les développeurs qui ont besoin d'une mesure du temps plus fine.
Pour résoudre cette limitation, envisagez la solution de contournement suivante :
Utilisation d'un champ BIGINT :
Bien que Doctrine ne remplisse pas automatiquement les millisecondes dans un champ BIGINT, vous pouvez calculer et insérer manuellement des horodatages à l'aide de fonctions PHP telles que microtime(). Cependant, cette approche peut ne pas être compatible avec les fonctions de manipulation de date SQL.
Compilation d'une extension UDF :
Bien que la compilation d'une extension UDF puisse ne pas être une solution idéale en raison de risques de mise à jour, il peut prendre en charge la précision à la microseconde.
Améliorations de MySQL 5.6.4
Heureusement, MySQL version 5.6.4 introduit la prise en charge des fractions de seconde avec jusqu'à Précision en microsecondes pour les valeurs TIME, DATETIME et TIMESTAMP. Cette amélioration résout efficacement la limitation mentionnée dans le problème d'origine.
Si la mise à niveau vers MySQL 5.6.4 n'est pas réalisable, les solutions de contournement mentionnées ci-dessus peuvent atténuer le problème. Cependant, il est recommandé de migrer vers la dernière version de MySQL autant que possible pour profiter de ses capacités améliorées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!