Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obtendo a data de início e término da semana? No servidor Sql?


O seguinte funcionará o que você considerar o primeiro dia da semana (domingo, segunda-feira etc), apenas certifique-se de usar SET DATEFIRST se você quiser mudar do padrão. SET DATEFIRST 1 fará o primeiro dia da semana segunda-feira.
SELECT  DATEADD(DAY, 1 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekStart],
        DATEADD(DAY, 7 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekEnd]

EDITAR

Acabei de reler seu pedido e acho que você pode estar atrás de algo diferente do que dei acima. Se você quiser o dia da semana do primeiro e do último do mês, isso fará o truque:
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]