On Fri, Sep 18, 2026 at 02:50:20PM +0000, Kacper Kuras wrote:
> Thanks. In the patch, "without a sign" only holds for years after
> 9999: dropping the minus from -0001-01-02 gives 0001-01-02, which is
> 1 AD, not 2 BC. Perhaps:
>
> (ISO 8601 writes years after 9999 with a leading plus sign, and
> years before 1 AD from a year zero, so 0000 is 1 BC and -0001 is
> 2 BC. PostgreSQL accepts neither; write 10000-01-02 and
> 0002-01-02 BC instead.)
Looking at the wiki page again, I see:
To represent years before 0000 or after 9999, the standard also
permits the expansion of the year representation but only by prior
agreement between the sender and the receiver.[25] An expanded
year representation [±YYYYY] must have an agreed-upon number of
extra year digits beyond the four-digit minimum, and it must be
prefixed with a + or - sign[26] instead of the more common AD/BC
(or CE/BCE) notation; by convention 1 BC is labelled +0000,
2 BC is labeled -0001, and so on.[27]
The "agreement between the sender and the receiver" makes it seem we
don't need to document that we don't support signs on the years.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Do not let urgent matters crowd out time for investment in the future.