sql >> Base de Datos >  >> RDS >> Sqlserver

Extraiga el número de semana de una fecha en SQL Server (T-SQL)

Puede usar la función T-SQL DATEPART() para devolver el número de semana de una fecha en SQL Server.

Por "número de semana" me refiero al número de la semana dentro del año de la fecha especificada.

Ejemplo

Para devolver el número de la semana, use week como primer argumento de DATEPART() función.

DECLARE @date date = '2020-07-20';
SELECT DATEPART(week, @date);

Resultado:

30

Argumentos alternativos

Alternativamente, puede usar wk o ww como primer argumento para hacer lo mismo.

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   |
 +--------+------+------+  

Notará que el número de semana en estos resultados es diferente al número de semana en el ejemplo anterior, aunque ambos ejemplos usaron el 20 de julio como fecha. Esto es de esperar.

Los dos ejemplos usan un año diferente. El número de la semana puede verse afectado por el año. Entonces, en otras palabras, solo porque el 20 de julio sea la semana número 30 en un año, no significa que será la semana número 30 todos los años. Solo algo para tener en cuenta.

Número de semana ISO

También puede devolver el número de semana ISO de una fecha utilizando iso_week argumento. Las semanas ISO comienzan los lunes y la primera semana de un año contiene el 4 de enero de ese año.

Por lo tanto, es posible que las fechas de principios de enero formen parte de la semana 52 o 53 del año anterior y que las fechas de finales de diciembre formen parte de la primera semana del año siguiente.