Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottenere la data di inizio e di fine della settimana? Nel server SQL?

Quanto segue funzionerà qualunque sia il primo giorno della settimana (domenica, lunedì ecc.), assicurati solo di utilizzare SET DATEFIRST se vuoi cambiare dall'impostazione predefinita. SET DATEFIRST 1 farà lunedì il primo giorno della settimana.

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

MODIFICA

Ho appena riletto la tua richiesta e penso che potresti essere alla ricerca di qualcosa di diverso da quello che ho dato sopra. Se vuoi il giorno della settimana del primo e dell'ultimo del mese questo farà il trucco:

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]