Quassnoiova odpověď funguje, ale trochu vás nechává na háku, pokud jde o data uprostřed dne (jeho začátek týdne vás nechá o den dříve, než potřebujete, pokud použijete čas uprostřed dne -- můžete testovat pomocí GETDATE()).
V minulosti jsem použil něco takového:
SELECT
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL), DATECOL)), 101),
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL) - 6, DATECOL)), 101)
Vedlejší výhodou toho je, že pomocí @@DATEFIRST můžete zpracovat nestandardní počáteční dny týdne (výchozí je neděle, ale pomocí SET @@DATEFIRST to můžete změnit).
Zdá se bláznivé, že jednoduchá manipulace s datem v SQL Server musí být tak tajemná, ale jde to...