2013-11-11 2 views

ответ

3

Запрос:

SQLFIDDLEExample

SELECT DATEPART(wk,DATEADD(wk,t2.number,'2011')) as Weeknumb 
FROM master..spt_values t2 
WHERE t2.type = 'P' 
AND t2.number <= 255 
AND YEAR(DATEADD(wk,t2.number,'2011'))=2011 
+0

Это работает, но почему на этой странице говорит 52 недели на 2013? http://www.epochconverter.com/date-and-time/weeknumbers-by-year.php – Uuid

+0

@Uuid это все о том, как вы хотите отображать неделю, посмотрите на это http://sqlfiddle.com/#!3/d41d8/24867, иногда существуют правила, что если на прошлой неделе должно быть 3 или 4 дня, если на прошлой неделе не было 3 или 4 дня, это считается в следующем году в первую неделю. – Justin

+0

@Uuid Я нашел этот номер http://www.epochconverter.com/epoch/weeknumbers.php 'Week в соответствии со стандартом ISO-8601, недели, начинающиеся в понедельник. Первая неделя года - неделя, которая содержит первый четверг этого года (= «Первая 4-дневная неделя»). Самый высокий номер недели в году - 52 или 53.' – Justin

2

Вы можете использовать SELECT DATEPART(WEEK,GETDATE()), чтобы получить номер недели в году, в идеале я бы сказал, что вам нужна таблица календарь поиска для построения с.

Смежные вопросы