Поиск первого дня недели в MSSQL

Задача
на вход: дата
на выходе: дата, которая была понедельником в той неделе в которую вошла исходная дата. Т.е. фактически первый день недели.


declare @Date DATETIME;
SET @Date='20110416';
select dateadd(week,DATEPART(WK, @Date)-1,dateadd(Year,DATEPART(yyyy, @Date)-1900,'19000101'))-datepart(weekday,dateadd(Year,DATEPART(yyyy, @Date)-1900,'19000101'))+1

Метки: