Hallo,
Zitat von
PASST:
Danke schon mal für die Links.
Die Frage ist, wer von uns beiden die 'falsche'
SQL Server Version einsetzt. Ich habe die fn_ISOweek() vom dotnetnukeblog, welche in der ersten Antwort in diesem Thread gepostet wurde. Auf dieser Seite wird auf DATEPART aus Transact-
SQL Reference (
SQL Server 2000) von
MSDN verwiesen. Demzufolge gehe ich davon aus, dass die ISOweek Funktion für
MSSQL 2000 geschrieben wurde.
Tatsache ist aber, dass die beiden
MSSQL Versionen unterschiedliche Resultate ausgeben. Was davon die richtige kann ich jetzt auf die schnelle nicht beurteilen.
ich spekuliere mal ein bisserl:
Zitat von
MSDN zu SQL-Server 2000:
http://
msdn.microsoft.com/en-us/library/aa258265(
SQL.80).aspx
The week (wk, ww) datepart reflects changes made to SET DATEFIRST. January 1 of any year defines the starting number for the week datepart, for example: DATEPART(wk, 'Jan 1, xxxx') = 1, where xxxx is any year.
Zitat von
MSDN zu SQL-Server 2005:
http://
msdn.microsoft.com/en-us/library/ms174420(
SQL.90).aspx
The week (wk, ww) datepart reflects changes made to SET DATEFIRST. January 1 of any year defines the starting number for the week datepart, for example: DATEPART(wk, 'Jan 1, xxxx') = 1, where xxxx is any year.
Dies dürfte, wenn ich mich nicht irre, nicht der ISO entsprechen und macht daher die Funktion fn_ISOWeek erst erforderlich.
Zitat von
MSDN zu SQL-Server 2008:
http://
msdn.microsoft.com/en-us/library/ms174420.aspx
datepart Abbreviations
...
week wk, ww
...
ISO_WEEK isowk, isoww
Da ist dann was dazugekommen.
Ich gehe mal davon aus, dass zwischen den einzelnen Versionen in dem Bereich Anpassungen vorgenommen wurden. Ob das jetzt irgendwo dokumentiert ist, kann ich nicht sagen. Da habe ich auch nicht die Zeit, um das herauszufinden.