Re: Dates BC. - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Dates BC.
Date
Msg-id 200312181345.hBIDjXH04946@candle.pha.pa.us
Whole thread Raw
In response to Dates BC.  (Kurt Roeckx <Q@ping.be>)
List pgsql-hackers
Kurt Roeckx wrote:
> I find this a little strange:
> 
> select date_part('year', '0002-01-01 BC'::date);
>  date_part
> -----------
>         -1
> 
> It seems 1 BC and 0 are the same year.
> 
> In backend/utils/adt/formatting.c:
> 
>         if (tmfc.bc)
>         {
>                 if (tm->tm_year > 0)
>                         tm->tm_year = -(tm->tm_year - 1);
> 
> It this normal or a bug?

Uh, well, yea, there was no year 0.  However, it seems we should return
the proper year.  My guess is that missing year 0 is the cause, and
there are certain reasons year 2 BC should return -1.  If you are
subtracting dates, like 32AD - 4BC, you get 35, which is the proper
number of years spanned.

I am not sure what is the proper answer.  I thought date_part just
grabbed "parts of the date" like it says, but obviously not, and there
are some good reasons for it, I guess.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: ecpg tests compile failure
Next
From: ohp@pyrenet.fr
Date:
Subject: Re: TODO list