Обсуждение: BUG #16192: Function to_char(date,'IW') return incorrect value for last days of a year

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

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

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


Re: BUG #16192: Function to_char(date,'IW') return incorrect valuefor 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');