{"id":50,"date":"2009-01-01T20:16:38","date_gmt":"2009-01-01T19:16:38","guid":{"rendered":"http:\/\/csopro.de\/biblog\/2009\/01\/berechnung-der-deutschen-kalenderwoche-in-sql\/"},"modified":"2009-01-01T20:16:38","modified_gmt":"2009-01-01T19:16:38","slug":"berechnung-der-deutschen-kalenderwoche-in-sql","status":"publish","type":"post","link":"https:\/\/www.csopro.de\/biblog\/2009\/01\/berechnung-der-deutschen-kalenderwoche-in-sql\/","title":{"rendered":"Berechnung der deutschen Kalenderwoche in SQL"},"content":{"rendered":"<p>Die datepart-Funktion des SQL-Servers liefert eine Woche zur\u00fcck, wenn man wk als Parameter w\u00e4hlt. Dies ist allerdings nicht die Kalenderwoche. Die deutsche Kalenderwoche funktioniert n\u00e4mlich so, dass die erste Woche des Jahres mit mindestens 4 Tagen in diesem Jahr die KW 1 dieses Jahres ist. Somit kann der 1.1. eines Jahres noch in der letzten KW des letzten Jahres liegen (nicht so im neuen Jahr 2009 &#8211; aber bis 2010 wollte ich nicht mit diesem Blog-Eintrag warten \ud83d\ude42 )<\/p>\n<p>Offensichtlich h\u00e4ngt die Berechnung davon ab, mit welchem Wochentag die Woche beginnt &#8211; bei uns in Deutschland mit dem Montag. Der SQL-Server verf\u00fcgt \u00fcber eine Einstellung @@DateFirst, die genau das angibt. Mit SET DATEFIRST 1 kann angegeben werden, dass der Monatg der 1. Tag der Woche ist. Diese Anweisung ist g\u00fcltig f\u00fcr die Session.<\/p>\n<p>In meinen <a href=\"https:\/\/www.csopro.de\/blogdateien\/StoredFunctionsFuerKW.sql\">hier beigef\u00fcgten<\/a> Skripten habe ich mich unabh\u00e4ngig von den Einstellungen mit DATEFIRST gemacht, so dass sie unabh\u00e4ngig von allen Einstellungen funktionieren und immer die deutsche Kalenderwoche zur\u00fcckgeben:<\/p>\n<p>select convert(nvarchar(10), getdate(), 104) Tag, dbo.getKW_Woche(getdate()) KW_Woche, dbo.getKW_Jahr(getdate()) KW_Jahr<\/p>\n<p>liefert als Ergebnis<\/p>\n<table border=1>\n<tr>\n<td>Tag<\/td>\n<td>KW_Woche<\/td>\n<td>KW_Jahr<\/td>\n<\/tr>\n<tr>\n<td>01.01.2009<\/td>\n<td>1<\/td>\n<td>2009<\/td>\n<\/tr>\n<\/table>\n<p>Das bedeutet, dass der heutige Tag in der KW 1\/2009 liegt, wie \u00fcbrigens der 31.12.2008 auch.<\/p>\n<p>In diesem Sinne, ein gutes, gesundes und erfolgreiches Neues Jahr<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die datepart-Funktion des SQL-Servers liefert eine Woche zur\u00fcck, wenn man wk als Parameter w\u00e4hlt. Dies ist allerdings nicht die Kalenderwoche. Die deutsche Kalenderwoche funktioniert n\u00e4mlich so, dass die erste Woche des Jahres mit mindestens 4 Tagen in diesem Jahr die KW 1 dieses Jahres ist. Somit kann der 1.1. eines Jahres noch in der letzten &hellip; <a href=\"https:\/\/www.csopro.de\/biblog\/2009\/01\/berechnung-der-deutschen-kalenderwoche-in-sql\/\" class=\"more-link\"><span class=\"screen-reader-text\">Berechnung der deutschen Kalenderwoche in SQL<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-50","post","type-post","status-publish","format-standard","hentry","category-sqlserver"],"_links":{"self":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/50","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/comments?post=50"}],"version-history":[{"count":0,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/50\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/media?parent=50"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/categories?post=50"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/tags?post=50"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}