Stocker des prix dans PostgreSQL, quel type de données ?
Un petit aide mémoire pour moi-même, mais peut-être que ça servira à quelques-un d’entre vous !
Pour stocker un prix dans PostgreSQL il faut utiliser le type de données (datatype) :
NUMERIC(precision, scale)
En pratique, par exemple : numeric(7,2) permettra de stocker un prix jusqu’à 99999.99. Il y a donc 7 digits au maximum (precision) et 2 après la virgule. PostgreSQL fera un arrondi de tout chiffre pour stocker uniquement 2 chiffres après la virgule.
Pour l’exemple, 135.784 a une « precision » de 6 et un « scale » de 3
Si le prix est supérieur, alors PostgreSQL retourne une erreur du type :
ERROR: numeric field overflow
DETAIL: A field with precision 5, scale 2 must round to an absolute value less than 10^3.
4 Commentaires
Gérard Douais
A propos5 ans agomerci pour cette petite astuce qui me sera utile dans mes projets
RépondreEric Desanti
A propos5 ans agoCette information m'a sauvé aujourd'hui ! Encore merci pour cette aide très pratique.
RépondreDavid Ria
A propos5 ans agoOhhh, cette information est tellement importante pour moi en ce moment. Encore merci.
RépondreUrielle Danaé
A propos4 ans agoJe n’ai jamais été très habile avec ce genre de langage et je ne le suis toujours pas en ce moment. Toutefois, j’aimerais bien avoir des bases pour ne pas demander à autrui à chaque fois.
Répondre