Jawaban Quassnoi berfungsi, tetapi membuat Anda bingung untuk membersihkan tanggal jika itu adalah tanggal di tengah hari (awal minggunya membuat Anda satu hari lebih awal dari yang Anda butuhkan jika Anda menggunakan waktu di tengah hari hari ini -- Anda dapat menguji menggunakan GETDATE()).
Saya telah menggunakan sesuatu seperti ini di masa lalu:
SELECT
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL), DATECOL)), 101),
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL) - 6, DATECOL)), 101)
Manfaat sampingan dari ini adalah bahwa dengan menggunakan @@DATEFIRST Anda dapat menangani hari-hari awal minggu yang tidak standar (standarnya adalah hari Minggu, tetapi dengan SET @@DATEFIRST Anda dapat mengubahnya).
Tampaknya gila bahwa manipulasi tanggal sederhana di SQL Server harus menjadi rahasia ini, tapi begitulah...