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.

3 Commentaires

Gérard Douais

A propos2 semaines ago

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

Répondre

Eric Desanti

A propos2 semaines ago

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

Répondre

David Ria

A propos2 semaines ago

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

Répondre

Laisser un commentaire

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