Du kan bruge T-SQL-funktionen DATEPART()
for at returnere ugenummeret fra en dato i SQL Server.
Med "ugenummer" mener jeg ugenummeret inden for året for den angivne dato.
Eksempel
For at returnere ugenummeret, brug week
som det første argument i DATEPART()
funktion.
DECLARE @date date = '2020-07-20';
SELECT DATEPART(week, @date);
Resultat:
30
Alternative argumenter
Alternativt kan du bruge wk
eller ww
som det første argument for at gøre det samme.
DECLARE @date date = '2024-07-20';
SELECT
DATEPART(week, @date) AS week,
DATEPART(wk, @date) AS wk,
DATEPART(ww, @date) AS ww;
Resultat:
+--------+------+------+ | week | wk | ww | |--------+------+------| | 29 | 29 | 29 | +--------+------+------+
Du vil bemærke, at ugenummeret i disse resultater er anderledes end ugenummeret i det foregående eksempel, selvom begge eksempler brugte 20. juli som deres datoer. Dette kan forventes.
De to eksempler bruger et forskelligt årstal. Ugens antal kan påvirkes af året. Så med andre ord, bare fordi den 20. juli er den 30. uge på et år, betyder det ikke, at det bliver den 30. uge hvert år. Bare noget at være opmærksom på.
ISO-ugenummer
Du kan også returnere ISO-ugenummeret fra en dato ved at bruge iso_week
argument. ISO-uger starter om mandagen, og den første uge i et år indeholder den 4. januar det pågældende år.
Derfor er det muligt, at datoer i begyndelsen af januar er en del af den 52. eller 53. uge i det foregående år, og at datoer i slutningen af december er en del af den første uge i det næste år.