Thread

Commits

  1. Doc: fix bogus to_date() examples.

  1. Mysteries of the future

    The Post Office <noreply@postgresql.org> — 2024-04-10T15:00:22Z

    The following documentation comment has been logged on the website:
    
    Page: https://www.postgresql.org/docs/16/functions-formatting.html
    Description:
    
    I'm not sure that there will be 31 days in 11 months; although postgresql
    probably knows better what will happen in 20000 
    
    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').
    
    https://www.postgresql.org/docs/current/functions-formatting.html
    
    ```sql
    SELECT to_date('20000-1131', 'YYYY-MMDD');
    
    ERROR:  22008: date/time field value out of range: "20000-1131"
    LOCATION:  DateTimeParseError, datetime.c:4021
    ```
    
  2. Re: Mysteries of the future

    Tom Lane <tgl@sss.pgh.pa.us> — 2024-04-11T14:20:38Z

    PG Doc comments form <noreply@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?
    
    			regards, tom lane
    
    
    
    
  3. Re: Mysteries of the future

    David G. Johnston <david.g.johnston@gmail.com> — 2024-04-11T14:34:14Z

    On Thu, Apr 11, 2024 at 7:20 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
    
    > PG Doc comments form <noreply@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.
    
  4. Re: Mysteries of the future

    Tom Lane <tgl@sss.pgh.pa.us> — 2024-04-11T14:47:03Z

    "David G. Johnston" <david.g.johnston@gmail.com> writes:
    > 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.
    
    Oh!  Got it, that should be fixed.
    
    			regards, tom lane