BUG #3237: function to_char() returns wrong value

Started by Robert wangabout 19 years ago2 messagesbugs
Jump to latest
#1Robert wang
robert.wang@eitec.com.tw

The following bug has been logged online:

Bug reference: 3237
Logged by: Robert wang
Email address: robert.wang@eitec.com.tw
PostgreSQL version: 8.2
Operating system: Windows 2000 professional
Description: function to_char() returns wrong value
Details:

I run this following SQL command in pgAdminIII:

Select to_char(12345,'00000')

but it always returns ' 12345' (hex code: 20 31 32 33 34 35).It always adds
one space char in the left side.

I have to use another function substring() as followings to get my expected
value.

Select substring(to_char(12345,'00000'),from ' ' for 5)

it exactly returns '12345' which I expect.

#2Bruce Momjian
bruce@momjian.us
In reply to: Robert wang (#1)
Re: BUG #3237: function to_char() returns wrong value

Robert wang wrote:

The following bug has been logged online:

Bug reference: 3237
Logged by: Robert wang
Email address: robert.wang@eitec.com.tw
PostgreSQL version: 8.2
Operating system: Windows 2000 professional
Description: function to_char() returns wrong value
Details:

I run this following SQL command in pgAdminIII:

Select to_char(12345,'00000')

but it always returns ' 12345' (hex code: 20 31 32 33 34 35).It always adds
one space char in the left side.

I have to use another function substring() as followings to get my expected
value.

Select substring(to_char(12345,'00000'),from ' ' for 5)

it exactly returns '12345' which I expect.

My guess is that the extra space is for the minus sign. Use "FM" to
supress padding:

test=> SELECT length(to_char(12345,'FM00000'));
length
--------
5
(1 row)

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +