Поиск первого дня недели в 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
Метки: mssql
20 Июль 2011 в 14:33
Можно сделать гораздо проще:
DATEADD, @Date)
Ваш подход не работает, если первым днем недели является воскресенье, что характерно для США и всех серверов, которые настроены на SET DATEFIRST 7; (по умолчанию всегда так).
20 Июль 2011 в 14:34
Парсер порезал запрос. 🙁