PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Obter o número da semana de uma data no PostgreSQL


No PostgreSQL você pode usar o extract() função para obter o número da semana de uma data.

Você também pode usar o date_part() função para fazer a mesma coisa.


Exemplo 1:A função extract()


Aqui está um exemplo de uso do extract() função para extrair a semana de uma data.
SELECT extract(week from date '2020-12-27') AS "Week Number";

Resultado:
 Número da semana ------------- 52

Exemplo 2:A função date_part()


Veja como fazer a mesma coisa usando o date_part() função.
SELECT date_part('week', date '2020-12-27') AS "Número da semana";

Resultado:
 Número da semana ------------- 52

Exemplo 3:sobre o sistema de numeração semanal ISO


Se você obtiver resultados que não esperava, pode ser por causa da maneira como a numeração de semanas ISO é definida.

As semanas ISO começam às segundas-feiras e a primeira semana de um ano contém 4 de janeiro daquele ano. Portanto, é possível que as datas do início de janeiro façam parte da 52ª ou 53ª semana do ano anterior e as datas do final de dezembro façam parte da primeira semana do ano seguinte.

Exemplo:
SELECT extract(week from date '2021-01-03') AS "2021-01-03", extract(week from date '2021-01-04') AS "2021-01-04"; 
Resultado:
 2021-01-03 | 2021-01-04 ------------+------------ 53 | 1

Nesse caso, 3 de janeiro de 2021 ainda faz parte da última semana de 2020. A primeira semana de 2021 não começa até 4 de janeiro.

Abaixo está outro exemplo que demonstra uma data no final do ano fazendo parte da primeira semana do ano seguinte.
SELECT extract(week from date '2024-12-29') AS "2024-12-29", extract(week from date '2024-12-30') AS "2024-12-30"; 
Resultado:
 29-12-2024 | 30/12/2024 ------------+------------ 52 | 1

Neste caso, 29 de dezembro de 2024 faz parte da última semana de 2024, mas assim que chegamos a 30 de dezembro, estamos na primeira semana de 2025.