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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

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

apt.postgresql.org Repository Update
The following bug has been logged on the website:

Bug reference:      16309
Logged by:          Charlie Hayes
Email address:      [hidden email]
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.

Reply | Threaded
Open this post in threaded view
|

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

David G Johnston
On Friday, March 20, 2020, PG Bug reporting form <[hidden email]> wrote:
The following bug has been logged on the website:

Bug reference:      16309
Logged by:          Charlie Hayes
Email address:      [hidden email]
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.