Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Extraia o número da semana de uma data no SQL Server (T-SQL)


Você pode usar a função T-SQL DATEPART() para retornar o número da semana de uma data no SQL Server.

Por “número da semana” quero dizer o número da semana dentro do ano da data especificada.

Exemplo


Para retornar o número da semana, use week como o primeiro argumento do DATEPART() função.
DECLARE @date date = '2020-07-20';
SELECT DATEPART(week, @date);

Resultado:
30

Argumentos alternativos


Alternativamente, você pode usar wk ou ww como o primeiro argumento para fazer a mesma coisa.
DECLARE @date date = '2024-07-20';
SELECT 
    DATEPART(week, @date) AS week,
    DATEPART(wk, @date) AS wk,
    DATEPART(ww, @date) AS ww;

Resultado:
+--------+------+------+
 | week   | wk   | ww   |
 |--------+------+------|
 | 29     | 29   | 29   |
 +--------+------+------+  

Você notará que o número da semana nesses resultados é diferente do número da semana no exemplo anterior, embora ambos os exemplos usem 20 de julho como datas. Isto é esperado.

Os dois exemplos usam um ano diferente. O número da semana pode ser afetado pelo ano. Então, em outras palavras, só porque 20 de julho é a 30ª semana de um ano, isso não significa que será a 30ª semana de cada ano. Apenas algo a ter em conta.

Número da semana ISO


Você também pode retornar o número da semana ISO de uma data usando o iso_week argumento. 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.