sql >> Base de Datos >  >> RDS >> Sqlserver

¿Obtener la fecha de inicio y finalización de la semana? En el servidor Sql?

Lo siguiente funcionará cualquiera que considere el primer día de la semana (domingo, lunes, etc.), solo asegúrese de usar SET DATEFIRST si desea cambiar el valor predeterminado. SET DATEFIRST 1 hará que el primer día de la semana sea el lunes.

SELECT  DATEADD(DAY, 1 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekStart],
        DATEADD(DAY, 7 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekEnd]

EDITAR

Acabo de volver a leer su solicitud y creo que puede estar buscando algo diferente a lo que he dado anteriormente. Si desea el día de la semana del primero y último del mes, esto funcionará:

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]