From: | Félix GERZAGUET <felix(dot)gerzaguet(at)gmail(dot)com> |
---|---|
To: | Michael Monscheuer <mm(at)digiperience(dot)de> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: Year 2024: Extracting week from date gives wrong results for the last two days of the year |
Date: | 2018-07-04 14:14:13 |
Message-ID: | CANVwZtsuCAKcHZmzP5d1w1J9OoATuVy7W537dQ3YjJ5DAFb0RA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Wed, Jul 4, 2018 at 3:55 PM, Michael Monscheuer <mm(at)digiperience(dot)de>
wrote:
> Extracting the week from a date gives wrong results for the last two days
> of 2024.
>
> SELECT EXTRACT (WEEK FROM DATE '20241230');
>
> or
>
> SELECT EXTRACT (WEEK FROM DATE '20241231');
>
> both result in a value of 1
> which is wrong, obviously...
>
> The expected result is 53
>
It is correct as per documentation (and the ISO 8601 standard):
Please look at: https://www.postgresql.org/docs/10/static/functions-
datetime.html
then looking for the week field you will see:
The number of the ISO 8601 week-numbering week of the year. By definition,
ISO weeks start on Mondays and the first week of a year contains January 4
of that year. In other words, the first Thursday of a year is in week 1 of
that year.
In the ISO week-numbering system, it is possible for early-January dates to
be part of the 52nd or 53rd week of the previous year, and for
late-December dates to be part of the first week of the next year. For
example, 2005-01-01 is part of the 53rd week of year 2004, and 2006-01-01
is part of the 52nd week of year 2005, while 2012-12-31 is part of the
first week of 2013. It's recommended to use the isoyear field together with
week to get consistent results.
Regards,
--
Félix
From | Date | Subject | |
---|---|---|---|
Next Message | Gavin Flower | 2018-07-04 17:21:02 | Re: Year 2024: Extracting week from date gives wrong results for the last two days of the year |
Previous Message | Jeff Janes | 2018-07-04 14:13:43 | Re: Year 2024: Extracting week from date gives wrong results for the last two days of the year |