La risposta di Quassnoi funziona, ma ti lascia in qualche modo impegnato a ripulire le date se sono date a metà giornata (il suo inizio settimana ti lascia un giorno prima del necessario se usi un tempo nel mezzo del giorno -- puoi testare usando GETDATE()).
Ho usato qualcosa del genere in passato:
SELECT
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL), DATECOL)), 101),
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL) - 6, DATECOL)), 101)
Un vantaggio collaterale di questo è che usando @@DATEFIRST puoi gestire giorni di inizio settimana non standard (l'impostazione predefinita è domenica, ma con SET @@DATEFIRST puoi cambiarlo).
Sembra pazzesco che la semplice manipolazione della data in SQL Server debba essere così arcana, ma ecco qua...