SQL Server 2008, Berechnung ISO_WEEK
Okt
16
Written by:
16.10.2007
Die TSQL-Funktion DATEPART() hat die neue Option ISO_WEEK. Damit ist nun die Berechnung der Wochennummer nach ISO 8601 -wie wir es hier in Europa gewöhnt sind - als eingebaute Funktion in der relationalen Maschine verfügbar. Jahr-Woche, siehe ...
wer die Wochenummer in Verbindung mit dem Jahr benötigt, könnte folgende Beispielfunktion verwenden:
create function dbo.fn_JahrIsoWeek(@d date)
returns int
as
begin
declare
@w int = datepart(ISO_WEEK, @d)
,@m int = month(@d)
,@j int = year(@d)
,@r int
;
if @m = 1 and @w > 52 -- Anfang des Jahres
begin
set @r = (@j - 1) * 100 + @w;
end
else if @m = 12 and @w = 1 -- Ende des Jahres
begin
set @r = (@j + 1) * 100 + @w;
end
else begin
set @r = @j * 100 + @w;
end
return @r;
end;
(nur teilweise getestet, ist erster Entwurf)