BUG #16309: Postgres's ISO 8601 date output is not compliant

Started by PG Bug reporting formabout 6 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 16309
Logged by: Charlie Hayes
Email address: cosmotic@gmail.com
PostgreSQL version: 11.6
Operating system: docker
Description:

Per Postgres's own documentation, ISO 8601 date output is NOT compliant
(Despite what the style name suggests):
https://www.postgresql.org/docs/12/datatype-datetime.html#DATATYPE-DATETIME-OUTPUT

The existing "Style Specification" name should be changed to something other
than ISO since it is NOT ISO compliant.

If the output from postgres cannot be parsed by a strictly ISO 8601 parser,
than it should not be considered an ISO 8601 string.

A new style should be create that is actually ISO compliant.

#2David G. Johnston
david.g.johnston@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #16309: Postgres's ISO 8601 date output is not compliant

On Friday, March 20, 2020, PG Bug reporting form <noreply@postgresql.org>
wrote:

The following bug has been logged on the website:

Bug reference: 16309
Logged by: Charlie Hayes
Email address: cosmotic@gmail.com
PostgreSQL version: 11.6
Operating system: docker
Description:

Per Postgres's own documentation, ISO 8601 date output is NOT compliant
(Despite what the style name suggests):
https://www.postgresql.org/docs/12/datatype-datetime.
html#DATATYPE-DATETIME-OUTPUT

The existing "Style Specification" name should be changed to something
other
than ISO since it is NOT ISO compliant.

Not going to happen. The value in the column is the literal value to
assign to the DateStyle GUC.

If the output from postgres cannot be parsed by a strictly ISO 8601 parser,

than it should not be considered an ISO 8601 string.

Fair point but its close enough for data interchange purposes. We, like
most systems, are prepared to handle values with and without the “T”.

A new style should be create that is actually ISO compliant.

Doesn't seem worthwhile. We conform to RFC3339 for our output and while we
are stuck with a problematic name there is little apparent demand for
including a strict ISO 8901 format output option since RFC3339 provides
sufficient interoperability. And there is an unideal but doable
alternative via to_char().

David J.