Följande kommer att fungera vad du än anser den första dagen i veckan (söndag, måndag etc), se bara till att du använder SET DATEFIRST
om du vill ändra från standard. SET DATEFIRST 1
kommer att göra den första dagen i veckan på måndag.
SELECT DATEADD(DAY, 1 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekStart],
DATEADD(DAY, 7 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekEnd]
REDIGERA
Jag har precis läst din begäran igen och jag tror att du kan vara ute efter något annat än vad jag har gett ovan. Om du vill ha veckodagen den första och sista i månaden kommer detta att göra susen:
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]