Можете да използвате функцията T-SQL DATEPART()
за да върнете номера на седмицата от дата в SQL Server.
Под „номер на седмицата“ имам предвид номера на седмицата в рамките на годината от посочената дата.
Пример
За да върнете номера на седмицата, използвайте week
като първи аргумент на DATEPART()
функция.
DECLARE @date date = '2020-07-20';
SELECT DATEPART(week, @date);
Резултат:
30
Алтернативни аргументи
Като алтернатива можете да използвате wk
или ww
като първи аргумент, за да направите същото.
DECLARE @date date = '2024-07-20';
SELECT
DATEPART(week, @date) AS week,
DATEPART(wk, @date) AS wk,
DATEPART(ww, @date) AS ww;
Резултат:
+--------+------+------+ | week | wk | ww | |--------+------+------| | 29 | 29 | 29 | +--------+------+------+
Ще забележите, че номерът на седмицата в тези резултати е различен от номера на седмицата в предишния пример, въпреки че и двата примера са използвали 20 юли като свои дати. Това може да се очаква.
Двата примера използват различна година. Броят на седмицата може да бъде повлиян от годината. С други думи, само защото 20 юли е 30-та седмица в една година, това не означава, че ще бъде 30-та седмица всяка година. Просто нещо, за което трябва да имате предвид.
Номер на седмицата по ISO
Можете също да върнете номера на ISO седмицата от дата, като използвате iso_week
аргумент. ISO седмиците започват в понеделник и първата седмица на годината съдържа 4 януари на същата година.
Следователно е възможно датите от началото на януари да са част от 52-ата или 53-та седмица на предходната година, а датите от края на декември да са част от първата седмица на следващата година.