On Thu, Apr 11, 2024 at 7:20 AM Tom Lane <t...@sss.pgh.pa.us> wrote:
> PG Doc comments form <nore...@postgresql.org> writes: > > SELECT to_date('20000-1131', 'YYYY-MMDD'); > > ERROR: 22008: date/time field value out of range: "20000-1131" > > What exactly do you find wrong with that? November doesn't have > 31 days. > > Sure, we could have a discussion about the probability of the > Gregorian calendar still being in use 18000 years from now, > but it doesn't seem very profitable. What else do you want > to use? > The request is to fix our documentation to use a valid date for the example in the paragraph that describes the separator requirement for years greater than 4 digits. In to_timestamp and to_date, the YYYY conversion has a restriction when processing years with more than 4 digits. You must use some non-digit character or template after YYYY, otherwise the year is always interpreted as 4 digits. For example (with the year 20000): to_date('200001131', 'YYYYMMDD') will be interpreted as a 4-digit year; instead use a non-digit separator after the year, like to_date('20000-1131', 'YYYY-MMDD') or to_date('20000Nov31', 'YYYYMonDD'). David J.