Hab ich im web gefunden... Es gibt aber sicher noch andere k�rzere
Implementationen:

CREATE PROC dbo.ISOweek  (
    @DATE datetime
)
AS
BEGIN
    DECLARE @ISOweek  int

    SET @ISOweek = DATEPART(wk, @DATE) + 1 -
        DATEPART(wk, CAST( DATEPART( yy, @DATE ) AS CHAR(4) ) + '0104' )
--Special cases: Jan 1-3 may belong to the previous year
    IF ( @ISOweek = 0 )
    BEGIN
        DECLARE @Date2    datetime
        SET @DATE2 = CAST( DATEPART( yy, @DATE ) - 1 AS CHAR(4) ) +
            '12' + CAST( 24 + DATEPART( DAY, @DATE ) AS CHAR(2) )
-- Nicht so doll: rekursiver Aufruf
        EXEC @ISOWeek = ISOWeek @DATE2
        SET @ISOWeek = @ISOWeek + 1
    END
--Special case: Dec 29-31 may belong to the next year
    IF ( ( DATEPART( mm, @DATE ) = 12 ) AND
       ( ( DATEPART( dd, @DATE ) - DATEPART( dw, @DATE) ) >= 28 ) )
        SET @ISOweek=1
   RETURN(@ISOweek)
END

Und der Test
    DECLARE @week    int
    DECLARE @date    datetime
    SET @date = '20000101'
    EXEC @Week = ISOWeek @date
    -- Noch die 52. Woche
    SELECT @Week
    SET @date = '20000103'
    EXEC @Week = ISOWeek @date
    -- die 1.
    SELECT @Week


Claudius 

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of 
> Kovacic-Vo�, Dominik-Pascal
> Sent: Dienstag, 10. Februar 2004 10:55
> To: '[EMAIL PROTECTED]'
> Subject: AW: [Database.asp] SQL KW 01/2005 <> RL KW01/2005
> 
> tja, das hilft aber nicht wirklich weiter und scheinbar ist 
> es nur ein Thema f�r uns beide
> 
> w�rde ja gerne cross posten, um zu schauen, was andere dazu 
> sagen ... aber dann bekomme ich bestimmt einen auf den Deckel ;)
> 
> ** -----Urspr�ngliche Nachricht-----
> ** Von: Alexander Schmid [mailto:[EMAIL PROTECTED]
> ** Gesendet: Freitag, 6. Februar 2004 13:23
> ** An: [EMAIL PROTECTED]
> ** Betreff: Re: [Database.asp] SQL KW 01/2005 <> RL KW01/2005
> **
> **
> ** also das steht in der hilfe.... :-/
> **
> ** Die Datumseinheit week (wk, ww) spiegelt an SET DATEFIRST
> ** vorgenommene �nderungen wider. Der 1. Januar eines
> ** beliebigen Jahres definiert die Anfangszahl f�r die
> ** Datumseinheit week. Beispiel: DATEPART(wk, 'Jan 1, xxxx') =
> ** 1, wobei xxxx f�r ein beliebiges Jahr steht.
> **
> ** weil der 1.1.05 aber ein samstag ist, wird automatich nach
> ** dem we mit einer neuen woche begonnen...
> ** tolle logik!!!
> **
> ** [EMAIL PROTECTED] schrieb am 06.02.04 13:13:55:
> **
> ** Nachtrag:
> **
> ** select DATEPART(wk,'2004-12-31 00:00:00') = 53
> ** select DATEPART(wk,'2005-01-01 00:00:00') = 1
> ** select DATEPART(wk,'2005-01-03 00:00:00') = 2
> **
> ** also waren meine Ausf�hrungen nicht ganz richtig, aber
> ** dennoch stellt sich
> ** hier das Problem nach wie vor.
> **
> ** Gru�
> ** Dominik
> **
> ** ** -----Urspr�ngliche Nachricht-----
> ** ** Von: "Kovacic-Vo�, Dominik-Pascal" 
> [mailto:[EMAIL PROTECTED]
> ** ** Gesendet: Freitag, 6. Februar 2004 12:54
> ** ** An: '[EMAIL PROTECTED]'
> ** ** Betreff: [Database.asp] SQL KW 01/2005 <> RL KW01/2005
> ** **
> ** **
> ** ** Hallo
> ** **
> ** ** ich stehe hier gerade vor einem kleinen Problem.
> ** **
> ** ** Wem ist schon alles aufgefallen, dass die KW01 im Jahr 2005
> ** ** zwischen dem SQL
> ** ** Server und dem realem Leben abweicht?
> ** **
> ** ** Im realem Leben ist KW01/2005 vom 03. Januar 2005 bis 09. 
> ** ** Januar 2005.
> ** ** F�r den SQL Server aber vom 27.12.2004 bis zum 02. Januar
> ** ** 2005 und damit ist
> ** ** KW02/2005 im SQL Server = KW01/2005 im real Live.
> ** **
> ** ** Was issn das f�r ein Dummfug ???
> ** ** Theorie: Das Jahr 2004 hat 53 Kalenderwochen (vermutlich
> ** ** durch Schaltjahr
> ** ** und noch wegen so ein paar Kleinigkeiten). Intern rechnet
> ** ** der SQL Server
> ** ** aber nur mit 52 Kalenderwochen.
> ** **
> ** ** Meinem Kunden gef�llt das gar nicht. Solange mir jetzt bitte
> ** ** keiner sagt,
> ** ** dass ich im Jahre 2005 alle Anzeigen f�r Kalenderwochen -1
> ** ** machen muss, bin
> ** ** ich f�r alle Vorschl�ge dankbar ;)
> ** **
> ** ** Gru�
> ** ** Dominik
> ** ** _______________________________________________
> ** ** Database.asp mailing list
> ** ** [EMAIL PROTECTED]
> ** ** http://www.glengamoi.com/mailman/listinfo/database.asp
> ** **
> ** **
> ** **
> ** _______________________________________________
> ** Database.asp mailing list
> ** [EMAIL PROTECTED]
> ** http://www.glengamoi.com/mailman/listinfo/database.asp
> **
> ** --
> **
> **
> ** _______________________________________________
> ** Database.asp mailing list
> ** [EMAIL PROTECTED]
> ** http://www.glengamoi.com/mailman/listinfo/database.asp
> **
> **
> **
> _______________________________________________
> Database.asp mailing list
> [EMAIL PROTECTED]
> http://www.glengamoi.com/mailman/listinfo/database.asp
> 

_______________________________________________
Database.asp mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/database.asp

Antwort per Email an