Ce qui suit fonctionnera quel que soit le premier jour de la semaine (dimanche, lundi, etc.), assurez-vous simplement d'utiliser SET DATEFIRST
si vous souhaitez modifier la valeur par défaut. SET DATEFIRST 1
fera le premier jour de la semaine lundi.
SELECT DATEADD(DAY, 1 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekStart],
DATEADD(DAY, 7 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekEnd]
MODIFIER
Je viens de relire votre demande et je pense que vous recherchez peut-être quelque chose de différent de ce que j'ai donné ci-dessus. Si vous voulez le jour de la semaine du premier et du dernier du mois, cela fera l'affaire :
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]