Re: BUG #2885: to_char function - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #2885: to_char function
Date
Msg-id 7266.1168616798@sss.pgh.pa.us
Whole thread Raw
In response to BUG #2885: to_char function  ("Akio Iwaasa" <iwaasa@mxs.nes.nec.co.jp>)
Responses Re: BUG #2885: to_char function  (Bruce Momjian <bruce@momjian.us>)
Re: BUG #2885: to_char function  (Jorge Godoy <jgodoy@gmail.com>)
List pgsql-bugs
"Akio Iwaasa" <iwaasa@mxs.nes.nec.co.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

pgsql-bugs by date:

Previous
From: "Zubkovsky, Sergey"
Date:
Subject: PG unexpected crash
Next
From: Bruce Momjian
Date:
Subject: Re: BUG #2885: to_char function