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

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

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

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

Bug reference:      16192
Logged by:          Olivier Delemar
Email address:      [hidden email]
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

Reply | Threaded
Open this post in threaded view
|

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

Thomas Kellerer
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');