Berikut adalah 2 cara berbeda, keduanya dengan asumsi minggu dimulai pada hari Senin
Jika Anda ingin minggu menjadi utuh, jadi mereka termasuk bulan di mana mereka mulai:Jadi Sabtu 09-01 dan Minggu 09-02 2012 adalah minggu 4 dan Senin 09-03 adalah minggu 1 gunakan ini:
declare @date datetime = '2012-09-01'
select datepart(day, datediff(day, 0, @date)/7 * 7)/7 + 1
Jika minggu Anda dipotong pada pergantian bulan, maka Sabtu 09-01 dan Minggu 09-02 adalah minggu 1 dan Senin 09-03 adalah minggu 2, gunakan ini:
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
Saya menerima email dari Gerald. Dia menunjukkan kelemahan dalam metode kedua. Ini harus diperbaiki sekarang