Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Estrarre il numero della settimana da una data in SQL Server (T-SQL)

È possibile utilizzare la funzione T-SQL DATEPART() per restituire il numero della settimana da una data in SQL Server.

Per "numero della settimana" intendo il numero della settimana nell'anno della data specificata.

Esempio

Per restituire il numero della settimana, usa week come primo argomento di DATEPART() funzione.

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

Risultato:

30

Argomenti alternativi

In alternativa, puoi usare wk o ww come primo argomento per fare la stessa cosa.

DECLARE @date date = '2024-07-20';
SELECT 
    DATEPART(week, @date) AS week,
    DATEPART(wk, @date) AS wk,
    DATEPART(ww, @date) AS ww;

Risultato:

+--------+------+------+
 | week   | wk   | ww   |
 |--------+------+------|
 | 29     | 29   | 29   |
 +--------+------+------+  

Noterai che il numero della settimana in questi risultati è diverso dal numero della settimana nell'esempio precedente, anche se entrambi gli esempi utilizzavano il 20 luglio come date. Questo è prevedibile.

I due esempi utilizzano un anno diverso. Il numero della settimana può essere influenzato dall'anno. Quindi, in altre parole, solo perché il 20 luglio è la 30a settimana in un anno, non significa che sarà la 30a settimana di ogni anno. Solo qualcosa di cui essere consapevoli.

Numero della settimana ISO

Puoi anche restituire il numero della settimana ISO da una data utilizzando il iso_week discussione. Le settimane ISO iniziano il lunedì e la prima settimana di un anno contiene il 4 gennaio di quell'anno.

Pertanto, è possibile che le date di inizio gennaio facciano parte della 52a o 53a settimana dell'anno precedente e che le date di fine dicembre facciano parte della prima settimana dell'anno successivo.