Добавить дату окончания недели в SQL Server

Чтобы добавить дату окончания недели в SQL Server, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот несколько подходов:

  1. Использование функций DATEADD и DATEPART:

    SELECT DATEADD(DAY, 7 - DATEPART(WEEKDAY, YourDateColumn), YourDateColumn) AS WeekEndingDate
    FROM YourTable;

    Этот метод вычисляет количество дней, необходимое для достижения следующей субботы (при условии, что суббота — это конец недели), а затем добавляет эти дни к исходной дате.

  2. Использование функций DATEADD и DATEDIFF:

    SELECT DATEADD(DAY, 6 - (DATEDIFF(DAY, '17530101', YourDateColumn) % 7), YourDateColumn) AS WeekEndingDate
    FROM YourTable;

    Этот подход вычисляет количество дней между базовой датой (‘17530101’) и исходной датой, принимает по модулю 7 день недели, а затем добавляет оставшиеся дни к исходной дате.

  3. Использование функции DATENAME:

    SELECT DATEADD(DAY, CASE
                       WHEN DATENAME(WEEKDAY, YourDateColumn) = 'Saturday' THEN 0
                       WHEN DATENAME(WEEKDAY, YourDateColumn) = 'Sunday' THEN 6
                       ELSE 5 - DATEPART(WEEKDAY, YourDateColumn)
                   END, YourDateColumn) AS WeekEndingDate
    FROM YourTable;

    Этот метод проверяет день недели с помощью функции DATENAME и соответствующим образом корректирует дату, чтобы установить дату окончания недели.