There is no zero calendar year. The first year of Anno Domini is 1. It's ordinal, not cardinal.
> -----Original Message----- > From: Karel Zak [mailto:[EMAIL PROTECTED] > Sent: Friday, December 19, 2003 12:04 AM > To: Kurt Roeckx > Cc: [EMAIL PROTECTED] > Subject: Re: [HACKERS] Dates BC. > > > > On Thu, Dec 18, 2003 at 02:11:20PM +0100, 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. > > Is there connection between formatting.c and date_part() ? > I don't think so... > > > 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? > > I think this code is OK, butg is somethere in extract > (date_part) code. > > > test=# select to_date('0020-01-10 BC'::text, 'YYYY-MM-DD BC'); > to_date > --------------- > 0020-01-10 BC > (1 řádka) > > test=# select to_date('0020-01-10 AD'::text, 'YYYY-MM-DD BC'); > to_date > ------------ > 0020-01-10 > > test=# select to_char('0020-01-10 BC'::date, 'YYYY-MM-DD AD'); > to_char > --------------- > 0020-01-10 BC > > Karel > -- > Karel Zak <[EMAIL PROTECTED]> > http://home.zf.jcu.cz/~zakkr/ > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > http://www.postgresql.org/docs/faqs/FAQ.html ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match