INTERVAL output format for iso_8601 is without dashes

Started by PG Bug reporting form28 days ago4 messagesdocs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/18/datatype-datetime.html
Description:

https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-INTERVAL-OUTPUT

The output format for mixed Interval in style specification iso_8601 is
documented incorrectly.

The documentation says `P-1Y-2M3D​T-4H-5M-6S` while in reality there are no
dashes: `P1Y2M3D​T4H5M6S`

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: PG Bug reporting form (#1)
Re: INTERVAL output format for iso_8601 is without dashes

PG Doc comments form <noreply@postgresql.org> writes:

https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-INTERVAL-OUTPUT
The output format for mixed Interval in style specification iso_8601 is
documented incorrectly.
The documentation says `P-1Y-2M3D​T-4H-5M-6S` while in reality there are no
dashes: `P1Y2M3D​T4H5M6S`

It looks correct to me:

regression=# set intervalstyle TO iso_8601;
SET
regression=# select '-1 year -2 mons +3 days -04:05:06'::interval;
interval
---------------------
P-1Y-2M3DT-4H-5M-6S
(1 row)

regards, tom lane

#3Benjamin Kröger
benjamin.kroeger@gmail.com
In reply to: Tom Lane (#2)
Re: INTERVAL output format for iso_8601 is without dashes

PG Doc comments form <noreply@postgresql.org> writes:

https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-INTERVAL-OUTPUT
The output format for mixed Interval in style specification iso_8601 is
documented incorrectly.
The documentation says `P-1Y-2M3D​T-4H-5M-6S` while in reality there are no
dashes: `P1Y2M3D​T4H5M6S`

It looks correct to me:

regression=# set intervalstyle TO iso_8601;
SET
regression=# select '-1 year -2 mons +3 days -04:05:06'::interval;
interval
---------------------
P-1Y-2M3DT-4H-5M-6S
(1 row)

well, judging vom the columns `Year-Month Interval` and `Day-Time
Interval` I didn't expect the input for the column `Mixed Interval` to
have negative dimensions (since the other two are positive dimensions
only). granted, I missed the positive three days :)

It might help to see the input values that led to the documented output
values. If you look e.g. at the mixed interval output for style
`postgres_verbose`, all dimensions are signed exactly opposite to the
`iso_8601` style.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Benjamin Kröger (#3)
Re: INTERVAL output format for iso_8601 is without dashes

=?UTF-8?Q?Benjamin_Kr=C3=B6ger?= <benjamin.kroeger@gmail.com> writes:

It might help to see the input values that led to the documented output
values. If you look e.g. at the mixed interval output for style
`postgres_verbose`, all dimensions are signed exactly opposite to the
`iso_8601` style.

I believe all the entries in each column of that table represent the
same value. The reason for the sign difference in postgres_verbose
is that it uses "ago" to indicate an overall sign inversion.

regards, tom lane