sql >> Databasteknik >  >> RDS >> PostgreSQL

Få veckonummer från ett datum i PostgreSQL

I PostgreSQL kan du använda extract() funktion för att få veckonummer från ett datum.

Du kan också använda date_part() funktion för att göra samma sak.

Exempel 1:Extrakt()-funktionen

Här är ett exempel på hur du använder extract() funktion för att extrahera veckan från ett datum.

VÄLJ utdrag (vecka från datum '2020-12-27') SOM "Veckans nummer";

Resultat:

 Veckanummer ------------- 52

Exempel 2:Funktionen date_part()

Så här gör du samma sak med date_part() funktion.

SELECT date_part('vecka', datum '2020-12-27') SOM "Veckans nummer";

Resultat:

 Veckanummer ------------- 52

Exempel 3:Om ISO Week-numbering System

Om du får resultat som du inte förväntade dig kan det bero på hur ISO-vecknumrering definieras.

ISO-veckorna börjar på måndagar och den första veckan på ett år innehåller den 4 januari samma år. Därför är det möjligt att datum i början av januari är en del av den 52:a eller 53:e veckan föregående år, och att datum i slutet av december är en del av den första veckan nästa år.

Exempel:

VÄLJ utdrag (vecka från datum '2021-01-03') AS "2021-01-03", utdrag (vecka från datum '2021-01-04') AS "2021-01-04"; 

Resultat:

 2021-01-03 | 2021-01-04 ------------+------------ 53 | 1

I det här fallet är den 3 januari 2021 faktiskt fortfarande en del av den sista veckan av 2020. Den första veckan av 2021 börjar inte förrän den 4 januari.

Nedan är ett annat exempel som visar att ett datum i slutet av året är en del av den första veckan på följande år.

VÄLJ utdrag (vecka från datum '2024-12-29') AS "2024-12-29", utdrag (vecka från datum '2024-12-30') AS "2024-12-30"; 

Resultat:

 2024-12-29 | 2024-12-30 ------------+------------ 52 | 1

I det här fallet är den 29 december 2024 en del av den sista veckan av 2024, men så snart vi kommer till den 30 december är vi inne i den första veckan av 2025.


  1. Rails Migration:Bigint på PostgreSQL verkar misslyckas?

  2. Agent är blockerad

  3. Hur skapar man en ny databas med hstore-tillägget redan installerat?

  4. Hur man får den aktuella tiden i PostgreSQL