Página 1 de 1

Tipo de Dato money

NotaPublicado: 2014-08-20 10:06 @462
por seafree
Buenos días, estoy intentado usar el tipo de dato MONEY pero al ejecutar la instrucción de inserción me manda el siguiente mensaje:

"DBD::Pg::st execute failed: ERROR: column "costo" is of type money but expression is of type integer
HINT: You will need to rewrite or cast the expression.

"

¿Me puede apoyar, por favor, aclarando su uso? Por que encontré que lo más recomendable es usar el tipo "numeric" para realizar cálculos monetarios, entonces, ¿el "numeric" cuándo y cómo se utiliza?

Agradezco enormemente su atención.

Re: Tipo de Dato money

NotaPublicado: 2014-08-20 10:37 @484
por explorer
En la página de manual de PostgreSQL, de los datos de tipo monetario, se explica:
Valores de tipo numérico, entero, y entero grande pueden ajustarse a money (dinero). La conversión desde tipos de datos reales y de doble precisión se puede realizar ajustándolos primero a numéricos. Por ejemplo:

SELECT '12.34'::float8::numeric::money;

Sin embargo, esto no es lo recomendado. Los números en punto flotante no deberían usarse para manejar dinero debido a los potenciales errores de redondeo.

El error te dice que tienes que usar un ajuste (cast) para pasar de entero a dinero, así que tienes que hacer algo parecido al ejemplo (pero sin la parte de float).