PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL:Кой тип данни трябва да се използва за валута?

Източникът ви по никакъв начин не е официален. Датира от 2011 г. и дори не разпознавам авторите. Ако типът пари беше официално "обезкуражен", PostgreSQL щеше да го каже в ръководството - което не прави.

За попо-официален източник , прочетете тази тема в pgsql-general (само от тази седмица!), с изявления от основни разработчици, включително D'Arcy J.M. Cain (оригиналният автор на типа пари) и Tom Lane:

Свързан отговор (и коментари!) относно подобренията в последните версии:

  • Отчет на Jasper:не може да се получи стойност за поле „x“ от клас „org.postgresql.util.PGmoney“

По принцип money има своите (много ограничени) приложения. Postgres Wiki предлага до голяма степен да го избягвате, с изключение на тези тясно дефинирани случаи. Предимството пред numeric е производителност .

decimal е просто псевдоним за numeric в Postgres и широко използван за парични данни, като тип „произволна точност“. Ръководството:

Типът numeric може да съхранява числа с много голям брой цифри. Особено се препоръчва за съхранение на парични суми и други количества, където се изисква точност.

Лично аз обичам да съхранявам валута като integer представляващи цента, ако дробни центове никога не се появяват (по принцип там, където парите имат смисъл). Това е по-ефективно от всяка друга от споменатите опции.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирате епохата на Unix във времева марка

  2. Как Asin() работи в PostgreSQL

  3. Вмъквайте данни в 3 таблици наведнъж с помощта на Postgres

  4. Извличане на всички привилегии на обект за конкретна роля

  5. Как да извършвате операции за актуализиране на колони от тип JSONB в Postgres 9.4