Tipos Monetarios

Los tipos monetarios almacenan un monto con una fracción fija, vea  Table 8-3. La presición fraccional es determinada por el establecimiento en la base de datos de  lc_monetary. La entrada es aceptada en una variedad de formas, incluído enteros y de doble presición, asi como también el clásico formato de moneda como '$1,000.00'. La salida es generalmente en la última forma pero depende de la localización. valores numéricos no encomillados pueden ser converitods a dinero utilizando el casteo a text y luego a money, por ejemplo:

SELECT 1234::text::money;

No hay una forma simple de hacerlo en reversa de modo independiente a la localización, namely casting a money value to a numeric type. Si sabe cual es el símbolo de separadores de miles, puede utilizar regexp_replace():

SELECT regexp_replace('52093.89'::money::text, '[$,]', '', 'g')::numeric;

Desde que la salida de datos es sensible a la locaclización, no funcionará cargar datos money en otra que lo tiene distinto , estableciendo lc_monetary. Para evitar problemas, antes de restaurar un backup en la nueva base de datos, asegurese que el lc_monetary tiene el mismo valor que en la base original.

Tabla 8-3. Monetary Types

NameStorage SizeDescriptionRange
money8 bytescurrency amount-92233720368547758.08 to +92233720368547758.07