2016-01-26 5 views
2

Я пытаюсь найти номер недели конкретного месяца данной даты, так что я хочу знать, какая неделя является то, что в течение данного месяцаПолучить номер недели месяца SQL Server

примера, если я введу

  • 2016 Февраль 2 ---> неделя 1
  • 2016 9 ---> Февраль неделя 2
  • 2016 2 ---> июнь неделя 1
  • 2016 25 ---> Jan неделю 5

Могу ли я достичь этого в запросе T-SQL?

Я видел следующий вариант

DATEPART(wk, BookingTimeStamp) 

Но что дает номер недели в году, а не месяц

Идея заключается в том, чтобы построить результат в неделю в течение данного месяца

ответ

3

Первый результат с использованием «SQL Server и Weeks in Month» возвратил статью this. Он показывает два способа использования DATEPART вместе с другими функциями синтаксического анализа. Вот одно из решений:

DECLARE @MyDate DATETIME =GETDATE() 

DATEDIFF(WEEK, DATEADD(MONTH, DATEDIFF(MONTH, 0, @MyDate), 0), @MyDate) +1 
+0

Какая неделя месяца - 25.01.2016, 1 ?? –

+0

@AtheerMostafa Он должен вернуть 5, если он рассчитывает «неделю», начиная с воскресенья и заканчивая в субботу. – ZLK

+0

@ZLK вы правы Я неправильно понимаю, я исправил свой голос. –

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