"jose' soares" <sferac@bo.nettuno.it> writes:
> prova=> select date '1941-01-01' + interval '1 year';
> ?column?
> ----------------------
> 1942-01-01 00:00:00+02
> (1 row)
> prova=> select date '1942-01-01' + interval '1 year';
> ?column?
> ----------------------
> 1942-12-31 23:00:00+01 <---------????????????????
> (1 row)
Note the transition from timezone "+02" to "+01" above. You're probably
looking at an artifact of the year-round daylight savings time that (IIRC)
some nations used during the war. Or at least some kind of change in
local timezone or DST rules that year.
Thomas would have a better idea about this than I do, but I'm betting that
the date-plus-interval operator thinks that a "one year" interval means
"365 (or 366 in leap year) times 24 hours", rather than "same local time
on the same nominal date next year". I seem to recall discussions about
exactly what "date plus 1 day" means when crossing a daylight-savings-time
boundary, for example.
regards, tom lane