Следното ще работи независимо от първия ден от седмицата, който прецените (неделя, понеделник и т.н.), просто се уверете, че използвате SET DATEFIRST
ако искате да промените от по подразбиране. SET DATEFIRST 1
ще направи първия ден от седмицата понеделник.
SELECT DATEADD(DAY, 1 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekStart],
DATEADD(DAY, 7 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekEnd]
РЕДАКТИРАНЕ
Току-що препрочетох молбата ви и мисля, че може да търсите нещо различно от това, което дадох по-горе. Ако искате деня от седмицата на първия и последния от месеца, това ще свърши работа:
SELECT DATENAME(WEEKDAY, DATEADD(DAY, 1 - DATEPART(DAY, GETDATE()), GETDATE())) [FirstDayOfMonth],
DATENAME(WEEKDAY, DATEADD(DAY, - DATEPART(DAY, DATEADD(MONTH, 1, GETDATE())), DATEADD(MONTH, 1, GETDATE()))) [LastDayOfMonth]