Re: Dates BC.
От | Bruce Momjian |
---|---|
Тема | Re: Dates BC. |
Дата | |
Msg-id | 200312181345.hBIDjXH04946@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Dates BC. (Kurt Roeckx <Q@ping.be>) |
Список | 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 по дате отправления: