Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhalten Sie die Wochennummer des Monats aus dem Datum in SQL Server 2008

Hier sind 2 verschiedene Möglichkeiten, beide gehen davon aus, dass die Woche am Montag beginnt

Wenn Sie wollen, dass Wochen ganz sind, also zu dem Monat gehören, in dem sie beginnen:Samstag 2012-09-01 und Sonntag 2012-09-02 ist Woche 4 und Montag 2012-09-03 ist Woche 1, verwenden Sie Folgendes:

declare @date datetime = '2012-09-01'
select datepart(day, datediff(day, 0, @date)/7 * 7)/7 + 1

Wenn Ihre Wochen zum Monatswechsel gekürzt werden, also Samstag 2012-09-01 und Sonntag 2012-09-02 Woche 1 und Montag 2012-09-03 Woche 2 ist, verwenden Sie Folgendes:

declare @date datetime = '2012-09-01'
select datediff(week, dateadd(week, 
  datediff(day,0,dateadd(month,
    datediff(month,0,@date),0))/7, 0),@date-1) + 1

Ich habe eine E-Mail von Gerald erhalten. Er wies auf einen Fehler in der zweiten Methode hin. Dies sollte jetzt behoben sein