Обсуждение: BUG #16309: Postgres's ISO 8601 date output is not compliant

Поиск
Список
Период
Сортировка

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

От
PG Bug reporting form
Дата:
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.


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

От
"David G. Johnston"
Дата:
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.