Re: BUG #2885: to_char function

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Akio Iwaasa" <iwaasa(at)mxs(dot)nes(dot)nec(dot)co(dot)jp>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #2885: to_char function
Date: 2007-01-12 15:46:38
Message-ID: 7266.1168616798@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

"Akio Iwaasa" <iwaasa(at)mxs(dot)nes(dot)nec(dot)co(dot)jp> writes:
> When I've used "to_char" function to convert "Date" to
> "century" format text, '2000-01-01' was converted in
> the 21st century.

> postgres=# select to_char('2000-01-01'::date, 'CC') ;
> to_char
> ---------
> 21
> (1 row)

I'm not entirely sure that this is wrong, because of the behavior of
the Y and YY fields.

regression=# select to_char('2007-01-01'::date, 'CC YY') ;
to_char
---------
21 07
(1 row)

regression=# select to_date('21 07', 'CC YY');
to_date
------------
2007-01-01
(1 row)

regression=# select to_char('2000-01-01'::date, 'CC YY') ;
to_char
---------
21 00
(1 row)

regression=# select to_date('21 00', 'CC YY');
to_date
------------
2000-01-01
(1 row)

If we make CC treat 2000 as being in the 20th century, what should YY
do?

Perhaps more to the point, how do these things act in Oracle?
to_char is basically an Oracle-compatibility function so we should
adopt their bugs :-(

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Jorge Godoy 2007-01-12 15:53:04 Re: BUG #2885: to_char function
Previous Message Zubkovsky, Sergey 2007-01-12 14:48:48 PG unexpected crash