Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year
От | Magnus Hagander |
---|---|
Тема | Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year |
Дата | |
Msg-id | CABUevEzP=g=O=Nmg+DMjwCL+74WsnPdTb98vbs6sSbQq_kdASw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year (Bruce Momjian <bruce@momjian.us>) |
Ответы |
Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year
|
Список | pgsql-bugs |
On Wed, Nov 5, 2014 at 7:02 PM, Bruce Momjian <bruce@momjian.us> wrote: > On Wed, Nov 5, 2014 at 05:56:07PM +0000, hunsakerbn@familysearch.org wrote: >> The following bug has been logged on the website: >> >> Bug reference: 11883 >> Logged by: Bruce Hunsaker >> Email address: hunsakerbn@familysearch.org >> PostgreSQL version: 9.3.5 >> Operating system: Linux >> Description: >> >> Entering historical dates we found we could not enter a date of '1500-02-29' >> Even though 1500 is documented to be a leap year. Tested with date and >> timestamp column types. >> >> To reproduce: >> psql> create table date_test (mydate date); >> CREATE TABLE >> psql> insert into date_test values ('1500-02-29'); >> ERROR: date/time field value out of range: "1500-02-29" >> LINE 1: insert into date_test values ('1500-02-29'); >> >> psql> insert into date_test values ('1500-02-28'); >> INSERT 0 1; >> >> So, Feb 29, is not allowed but Feb 28 is. > > Uh, what makes you think 1500 was a leap year? This is the canonical > way to calculate which years are leap years: > > #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0)) > > Because 1500 % 100 == 0, I think 1500 was not a leap year. I believe it was a leap year in the Julian calendar, maybe that's where the difference comes from? http://en.wikipedia.org/wiki/1500 -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
В списке pgsql-bugs по дате отправления: