Je ne sais pas quelle est la meilleure façon de le stocker - mais il y a au moins une meilleure option que d'utiliser un varchar(39)
(ou varchar(40)
si vous en aviez besoin signé); utilisez plutôt a decimal(39,0)
. Depuis les documents mysql :
Types à virgule fixe (valeur exacte)
Les types DECIMAL et NUMERIC stockent des valeurs de données numériques exactes. Ces types sont utilisés lorsqu'il est important de conserver une précision exacte, par exemple avec des données monétaires. Dans MySQL, NUMERIC est implémenté en tant que DECIMAL, donc les remarques suivantes sur DECIMAL s'appliquent également à NUMERIC.
MySQL 5.1 stocke les valeurs DECIMAL au format binaire. Avant MySQL 5.0.3, ils étaient stockés sous forme de chaînes. Voir Section 11.18, «Mathématiques de précision».
Dans une déclaration de colonne DECIMAL, la précision et l'échelle peuvent être (et sont généralement) spécifiées; par exemple:
salary DECIMAL(5,2)
Dans cet exemple, 5 est la précision et 2 est l'échelle. La précision représente le nombre de chiffres significatifs qui sont stockés pour les valeurs, et l'échelle représente le nombre de chiffres qui peuvent être stockés après le point décimal.
SQL standard requiert que DECIMAL (5,2) soit capable de stocker n'importe quelle valeur avec cinq chiffres et deux décimales, de sorte que les valeurs qui peuvent être stockées dans la colonne de salaire vont de -999,99 à 999,99.
Dans SQL standard, la syntaxe DECIMAL (M) est équivalente à DECIMAL (M, 0). De même, la syntaxe DECIMAL est équivalente à DECIMAL (M, 0), où l'implémentation est autorisée à décider de la valeur de M. MySQL prend en charge ces deux variantes de syntaxe DECIMAL. La valeur par défaut de M est 10.
Si l'échelle est 0, les valeurs DÉCIMALES ne contiennent ni point décimal ni partie fractionnaire.
Le nombre maximal de chiffres pour DECIMAL est de 65, mais la plage réelle pour une colonne DECIMAL donnée peut être limitée par la précision ou l'échelle d'une colonne donnée. Lorsqu'une telle colonne se voit attribuer une valeur avec plus de chiffres après la virgule décimale que ne le permet l'échelle spécifiée, la valeur est convertie à cette échelle. (Le comportement précis est spécifique au système d'exploitation, mais généralement l'effet est la troncature au nombre de chiffres autorisé.)