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.

Reply via email to