Her er 2 forskellige måder, begge antager, at ugen starter på mandag
Hvis du ønsker, at uger skal være hele, så hører de til den måned, hvor de starter:Så lørdag 2012-09-01 og søndag 2012-09-02 er uge 4 og mandag 2012-09-03 er uge 1, brug denne:
declare @date datetime = '2012-09-01'
select datepart(day, datediff(day, 0, @date)/7 * 7)/7 + 1
Hvis dine uger skærer ned på månedsskifte, så lørdag 2012-09-01 og søndag 2012-09-02 er uge 1 og mandag 2012-09-03 er uge 2, brug dette:
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
Jeg modtog en e-mail fra Gerald. Han påpegede en fejl ved den anden metode. Dette burde være rettet nu