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.