BUG #16192: Function to_char(date,'IW') return incorrect value for last days of a year

Started by PG Bug reporting formover 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: 16192
Logged by: Olivier Delemar
Email address: olivier.delemar@free.fr
PostgreSQL version: 9.6.6
Operating system: Linux
Description:

According to ISO 8691 specifications, the first week of a year is the week
containing the first thursday of the year. Thus, the 30 and 31 of december
2019 should be in the first week of 2020, but "to_char" set them in the
first week of... 2019!

[postgres] $ psql
psql (9.6.6)
Saisissez « help » pour l'aide.

# select to_char('2019-12-30'::date, 'YYYY-IW');
to_char
---------
2019-01
(1 ligne)

Temps : 152,799 ms

#2Thomas Kellerer
spam_eater@gmx.net
In reply to: PG Bug reporting form (#1)
Re: BUG #16192: Function to_char(date,'IW') return incorrect value for last days of a year

PG Bug reporting form schrieb am 06.01.2020 um 09:39:

According to ISO 8691 specifications, the first week of a year is the week
containing the first thursday of the year. Thus, the 30 and 31 of december
2019 should be in the first week of 2020, but "to_char" set them in the
first week of... 2019!

[postgres] $ psql
psql (9.6.6)
Saisissez « help » pour l'aide.

# select to_char('2019-12-30'::date, 'YYYY-IW');
to_char
---------
2019-01
(1 ligne)

Not a bug.

To get the year corresponding to the ISO week, you need to use the format for the "ISO Year"

select to_char('2019-12-30'::date, 'IYYY-IW');