Quassnois Antwort funktioniert, aber Sie bleiben irgendwie am Haken, um die Daten zu bereinigen, wenn es sich um Daten in der Mitte des Tages handelt (sein Wochenstart lässt Sie einen Tag früher als nötig, wenn Sie eine Zeit in der Mitte verwenden des Tages -- Sie können dies mit GETDATE() testen).
Ich habe in der Vergangenheit so etwas verwendet:
SELECT
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL), DATECOL)), 101),
CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL) - 6, DATECOL)), 101)
Ein Nebenvorteil davon ist, dass Sie durch die Verwendung von @@DATEFIRST nicht standardmäßige Wochenanfangstage behandeln können (der Standard ist Sonntag, aber mit SET @@DATEFIRST können Sie dies ändern).
Es scheint verrückt, dass die einfache Datumsmanipulation in SQL Server so geheimnisvoll sein muss, aber los geht's ...