Quassnois svar virker, men lader dig lidt på krogen for at rydde op i datoerne, hvis de er datoer midt på dagen (hans start på ugen forlader dig en dag tidligere, end du behøver, hvis du bruger en tid i midten af dagen -- du kan teste ved at bruge GETDATE()).
Jeg har brugt sådan noget tidligere:
SELECT
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL), DATECOL)), 101),
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL) - 6, DATECOL)), 101)
En sidefordel ved dette er, at du ved at bruge @@DATEFIRST kan håndtere ikke-standardiserede ugestartdage (standard er søndag, men med SET @@DATEFIRST kan du ændre dette).
Det virker skørt, at simpel datomanipulation i SQL Server skal være så mystisk, men så er det...