Thread
-
Date/Time parsing of ISO 8601 timestamps with commas
Zane Duffield <duffieldzane@gmail.com> — 2025-10-09T23:43:04Z
I noticed today that PostgreSQL doesn't support parsing ISO 8601 timestamps that use a comma as the decimal separator. The section of the standard that describes this is 4.2.2.4 > the decimal fraction shall be divided from the integer part by the decimal > sign specified in ISO 31-0, i.e. the comma [,] or full stop [.]. Of these, > the comma is the preferred sign > I noticed this issue because a script I wrote used the unix `date` command to generate a timestamp (later fed into PostgreSQL) > $ date --iso-8601=ns > 2025-10-10T10:38:59,386724473+11:00 I read over the documentation for Date/Time types: https://www.postgresql.org/docs/18/datatype-datetime.html > Date and time input is accepted in almost any reasonable format, including > ISO 8601 but there is no clarification on this page that the comma is not supported as the decimal separator. Thanks, Zane
-
Re: Date/Time parsing of ISO 8601 timestamps with commas
Nathan Bossart <nathandbossart@gmail.com> — 2025-10-10T20:09:25Z
On Fri, Oct 10, 2025 at 10:43:04AM +1100, Zane Duffield wrote: > I noticed today that PostgreSQL doesn't support parsing ISO 8601 timestamps > that use a comma as the decimal separator. I found various threads about this in the archives, including this one: https://postgr.es/m/flat/152271186941.1442.12179299369295226185%40wrigleys.postgresql.org -- nathan
-
Re: Date/Time parsing of ISO 8601 timestamps with commas
David G. Johnston <david.g.johnston@gmail.com> — 2025-10-10T20:30:01Z
On Fri, Oct 10, 2025 at 4:09 PM Nathan Bossart <nathandbossart@gmail.com> wrote: > On Fri, Oct 10, 2025 at 10:43:04AM +1100, Zane Duffield wrote: > > I noticed today that PostgreSQL doesn't support parsing ISO 8601 > timestamps > > that use a comma as the decimal separator. > > I found various threads about this in the archives, including this one: > > > https://postgr.es/m/flat/152271186941.1442.12179299369295226185%40wrigleys.postgresql.org > > If there are indeed various threads we might want to update the documentation to make it clear that we say "almost" because we don't correctly interpret formats that have substituted a comma for a full-stop. (And maybe other exceptions.) Or, I suppose, Appendix B.1 step 1 should include a 5th note (or maybe add a step 0): "If the token is a comma it is replaced by a space". David J.
-
Re: Date/Time parsing of ISO 8601 timestamps with commas
Zane Duffield <duffieldzane@gmail.com> — 2025-10-10T20:45:14Z
That linked thread covers the topic quite well. I didn't find it because the search function on the website only goes back 1 year. I think adding some note to the documentation would be appropriate. ________________________________ From: David G. Johnston <david.g.johnston@gmail.com> Sent: Saturday, October 11, 2025 7:30:01 AM To: Nathan Bossart <nathandbossart@gmail.com> Cc: Zane Duffield <duffieldzane@gmail.com>; pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org> Subject: Re: Date/Time parsing of ISO 8601 timestamps with commas On Fri, Oct 10, 2025 at 4:09 PM Nathan Bossart <nathandbossart@gmail.com<mailto:nathandbossart@gmail.com>> wrote: On Fri, Oct 10, 2025 at 10:43:04AM +1100, Zane Duffield wrote: > I noticed today that PostgreSQL doesn't support parsing ISO 8601 timestamps > that use a comma as the decimal separator. I found various threads about this in the archives, including this one: https://postgr.es/m/flat/152271186941.1442.12179299369295226185%40wrigleys.postgresql.org If there are indeed various threads we might want to update the documentation to make it clear that we say "almost" because we don't correctly interpret formats that have substituted a comma for a full-stop. (And maybe other exceptions.) Or, I suppose, Appendix B.1 step 1 should include a 5th note (or maybe add a step 0): "If the token is a comma it is replaced by a space". David J.