Thanks for the replies so far. I had been using cast(foo::text as integer).
To clarify my question, does anyone know *why* I can't cast from varchar to integer? Why should I have to cast to text first? thanks On Tuesday, May 14, 2002, at 04:47 PM, David Stanaway wrote: > On Tue, 2002-05-14 at 13:56, Scott Royston wrote: >> Mac OSX, postgresql 7.2.1 >> >> what's the reasoning behind not being able to cast a varchar as >> integer? this seems very weird to me: >> >> LEDEV=# create table test (foo varchar(5), bar text); >> LEDEV=# insert into test (foo, bar) values ('123', '123'); >> LEDEV=# select cast(foo as integer) from test; >> ERROR: Cannot cast type 'character varying' to 'integer' >> LEDEV=# select cast(bar as integer) from test; >> bar >> ----- >> 123 >> (1 row) > > > Try this: > > scratch=# select foo::text::integer from test; > foo > ----- > 123 > (1 row) > > > Or: > > scratch=# select int4(foo) from test; > int4 > ------ > 123 > (1 row) > > > > -- > David Stanaway > ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])