Thread: CAST(integer_field AS character) truncates trailing zeros
I am trying to cast an int to a character. The int is the number 1000 it gets cast down to "1" and not "1000". How do I cast from int to character without loosing the trailing zeros? -- Thanks, Warren Bell
On Thu, Jul 31, 2008 at 4:03 PM, Warren Bell <warren@clarksnutrition.com> wrote: > I am trying to cast an int to a character. The int is the number 1000 it > gets cast down to "1" and not "1000". How do I cast from int to character > without loosing the trailing zeros? Please supply the exact syntax that you're using to do the cast. -Doug
On Thu, Jul 31, 2008 at 1:03 PM, Warren Bell <warren@clarksnutrition.com> wrote: > I am trying to cast an int to a character. The int is the number 1000 it > gets cast down to "1" and not "1000". How do I cast from int to character > without loosing the trailing zeros? Here is what I get when I try: postgres=# select cast( cast( 1000 as integer ) as char ); bpchar -------- 1 (1 row) postgres=# select cast( cast( 1000 as integer ) as char(10) ); bpchar ------------ 1000 (1 row) -- Regards, Richard Broersma Jr. Visit the Los Angeles PostgreSQL Users Group (LAPUG) http://pugs.postgresql.org/lapug
--- On Thu, 7/31/08, Warren Bell <warren@clarksnutrition.com> wrote: > From: Warren Bell <warren@clarksnutrition.com> > Subject: [GENERAL] CAST(integer_field AS character) truncates trailing zeros > To: pgsql-general@postgresql.org > Date: Thursday, July 31, 2008, 8:03 PM > I am trying to cast an int to a character. The int is the > number 1000 it > gets cast down to "1" and not "1000". > How do I cast from int to > character without loosing the trailing zeros? > > -- > Thanks, > > Warren Bell > > work to me template1=# select cast('1000' as varchar); varchar --------- 1000 (1 fila) template1=# > -- > Sent via pgsql-general mailing list > (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general
On Thu, Jul 31, 2008 at 4:17 PM, Richard Broersma <richard.broersma@gmail.com> wrote: > On Thu, Jul 31, 2008 at 1:03 PM, Warren Bell <warren@clarksnutrition.com> wrote: >> I am trying to cast an int to a character. The int is the number 1000 it >> gets cast down to "1" and not "1000". How do I cast from int to character >> without loosing the trailing zeros? > > Here is what I get when I try: > > postgres=# select cast( cast( 1000 as integer ) as char ); > bpchar > -------- > 1 > (1 row) AFAIK, CHAR means CHAR(1), so there are not enough characters to contain the result and it gets truncated. Maybe TEXT should be used instead, or VARCHAR? -Doug
I guess it would help if I cast to the correct type. I was doing cast( cast( 1000 as integer ) as char ) instead of character varying, char(n) or text. Thanks, Warren Warren Bell wrote: > I am trying to cast an int to a character. The int is the number 1000 > it gets cast down to "1" and not "1000". How do I cast from int to > character without loosing the trailing zeros? > -- Thanks, Warren Bell 909-645-8864 warren@clarksnutrition.com