Stocker des prix dans PostgreSQL, quel type de données ?

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 ago

merci pour cette petite astuce qui me sera utile dans mes projets

Répondre

Eric Desanti

A propos5 ans ago

Cette information m'a sauvé aujourd'hui ! Encore merci pour cette aide très pratique.

Répondre

David Ria

A propos5 ans ago

Ohhh, cette information est tellement importante pour moi en ce moment. Encore merci.

Répondre

Urielle Danaé

A propos4 ans ago

Je 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

Laisser un commentaire

Please be polite. We appreciate that.
Your email address will not be published and required fields are marked