Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Abrufen des Start- und Enddatums der Woche? Auf dem SQL-Server?

Das Folgende funktioniert unabhängig davon, was Sie für den ersten Tag der Woche halten (Sonntag, Montag usw.), stellen Sie nur sicher, dass Sie SET DATEFIRST verwenden wenn Sie von der Standardeinstellung abweichen möchten. SET DATEFIRST 1 wird den ersten Tag der Woche zum Montag machen.

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

BEARBEITEN

Ich habe Ihre Anfrage gerade noch einmal gelesen, und ich denke, Sie wollen etwas anderes als das, was ich oben angegeben habe. Wenn Sie den Wochentag des Monatsersten und -letzten des Monats wollen, reicht dies aus:

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]