Чтобы добавить дату окончания недели в SQL Server, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот несколько подходов:
-
Использование функций DATEADD и DATEPART:
SELECT DATEADD(DAY, 7 - DATEPART(WEEKDAY, YourDateColumn), YourDateColumn) AS WeekEndingDate FROM YourTable;Этот метод вычисляет количество дней, необходимое для достижения следующей субботы (при условии, что суббота — это конец недели), а затем добавляет эти дни к исходной дате.
-
Использование функций DATEADD и DATEDIFF:
SELECT DATEADD(DAY, 6 - (DATEDIFF(DAY, '17530101', YourDateColumn) % 7), YourDateColumn) AS WeekEndingDate FROM YourTable;Этот подход вычисляет количество дней между базовой датой (‘17530101’) и исходной датой, принимает по модулю 7 день недели, а затем добавляет оставшиеся дни к исходной дате.
-
Использование функции 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 и соответствующим образом корректирует дату, чтобы установить дату окончания недели.