A. Kretschmer wrote:

am  05.10.2005, um 15:08:33 +0200 mailte Robert Osowiecki folgendes:
Hello!

Anyone could explain to me, why cast(3.33 to int) works (from float, I suppose) but cast('3.33' to int) (from text) does not? And what if I create a cast for that: is it possibly dangerous?

test=# select '3.33'::float::int;
int4
------
   3
(1 row)

Let me explain better. I encountered this problem when I tried to write
general unit-calculation (from kilograms to punds, for example) function
operating on any arithmetic datatype: with float and numeric it went all
ok, but failed with integer on "return $result" with error "invalid
input syntax for integer". My function internally operated on numeric type. I wrote a wrap-around for integer, because I've been afraid, that changing "text to integer" cast (or input function, whatever it is) could damage something important.

R.



---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to