Thread: Money deprecation and cast problem

Money deprecation and cast problem

From
"DanixDefcon5"
Date:
Ok, I've been using Postgres for quite some time now (about 6
years-ish), except for a MySQL period b/c of work requirements.
However, I never managed to use some of the more special types in the
DBMS, like 'money'.

I know that the 'money' type is now deprecated, but I wonder why it is,
and also ... how was it supposed to cast any other data type to 'money'
anyway??? I checked the function list, per \df and couldn't find any
function to do so, even though the money data type is basically an int4
with the decimal point moved two places to the left. So....

- Why did they deprecate it?
and
- Why were there no functions to convert data types *to* money? There
were plenty of possible casts *from* money...


Re: Money deprecation and cast problem

From
Kris Jurka
Date:

On Mon, 24 Apr 2006, DanixDefcon5 wrote:

> I know that the 'money' type is now deprecated, but I wonder why it is,
> and also ... how was it supposed to cast any other data type to 'money'
> anyway??? I checked the function list, per \df and couldn't find any
> function to do so, even though the money data type is basically an int4
> with the decimal point moved two places to the left. So....
>
> - Why did they deprecate it?

This is not a JDBC question.  The -general list would be more appropriate
for this question.

When dealing with currency you are normally dealing with exact amounts and
should be using the numeric type instead of a wrapper around int.
You shouldn't be able to do:

jurka=# select '$9.99'::money / 10.0;
----------
     $1.00
jurka=# select '$1,000,000'::money * 30;
-----------------
  -$12,949,672.96


Kris Jurka