Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Obtenir la date de début et de fin de la semaine ? Dans le serveur SQL ?

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]