Thread: Type Conversion: int4 -> Money
Is there a way to convert an int4 into a money? I have a few reports that require format of int4 as a money(I didn't use money for money because it's very difficult to convert money into other types it seems)... The only way I can figure out how to do it is a kludge, such as: CREATE TABLE z(a int4, b money); Fill a with appropriate values, then set b as "1". SELECT a*b as a FROM z... And your done... But there should be some easier way to convert an int4 into a money rather than mulitply it? --David
At 21:49 +0300 on 06/07/1999, secret wrote: > Is there a way to convert an int4 into a money? I have a few reports > that require format of int4 as a money(I didn't use money for money > because it's very difficult to convert money into other types it > seems)... What language do you use for creating the report? Most of the time, you can get the integer in the frontend (the report program), and format it using some formatting routine. > The only way I can figure out how to do it is a kludge, such as: > > CREATE TABLE z(a int4, b money); > > Fill a with appropriate values, then set b as "1". SELECT a*b as a FROM > z... And your done... But there should be some easier way to convert an > int4 into a money rather than mulitply it? You can multiply it without creating a special table for it. For example, here is a test table: testing=> select num, num * '1'::money from test1; num|?column? ------+----------- 2|$2.00 4|$4.00 -14|($14.00) 38|$38.00 199|$199.00 100399|$100,399.00 (6 rows) Is that what you wanted? Herouth -- Herouth Maoz, Internet developer. Open University of Israel - Telem project http://telem.openu.ac.il/~herutma
Herouth Maoz wrote: > At 21:49 +0300 on 06/07/1999, secret wrote: > > > Is there a way to convert an int4 into a money? I have a few reports > > that require format of int4 as a money(I didn't use money for money > > because it's very difficult to convert money into other types it > > seems)... > > What language do you use for creating the report? Most of the time, you can > get the integer in the frontend (the report program), and format it using > some formatting routine. > > > The only way I can figure out how to do it is a kludge, such as: > > > > CREATE TABLE z(a int4, b money); > > > > Fill a with appropriate values, then set b as "1". SELECT a*b as a FROM > > z... And your done... But there should be some easier way to convert an > > int4 into a money rather than mulitply it? > > You can multiply it without creating a special table for it. For example, > here is a test table: > > testing=> select num, num * '1'::money from test1; > num|?column? > ------+----------- > 2|$2.00 > 4|$4.00 > -14|($14.00) > 38|$38.00 > 199|$199.00 > 100399|$100,399.00 > (6 rows) > > Is that what you wanted? > > Herouth > > -- > Herouth Maoz, Internet developer. > Open University of Israel - Telem project > http://telem.openu.ac.il/~herutma Perl... I ended up writing my own formatting function... It has one that does ####.## however not one that'll do the nice 123,456.33 ... :) Do you know if there are any public modules that do such things?