Возврат номера недели для любой заданной даты и начиная с пользовательской даты - PullRequest
0 голосов
/ 31 мая 2019

хорошо, я пытаюсь создать функцию, которая возвращает номер недели, но не похожую на часть даты, которая возвращает его для обычного года (01 января - 31 декабря). Я хочу вернуть его, используя пользовательский год (01 сентября - 31 августа следующего года) Также у меня есть некоторые правила, такие как:

  • первое сентября всегда в неделю номер 1. -воскресенье - последний день недели.
  • если воскресенье - первый день сентября, то первая неделя заканчивается до следующего воскресенья.

Я ожидаю получить результаты, используя код как

select week_number('01/09/2019')

Результаты: 1

select week_number('04/09/2017')

Результаты: 2

1 Ответ

0 голосов
/ 31 мая 2019

Попробуйте следующее:

Номер недели в месяце:

declare @date datetime = '01/09/2017'

select (DATEPART(week,@Date)- DATEPART(week,DATEADD(m, DATEDIFF(m, 0, @Date), 0))) 

Номер недели в году:

declare @date datetime = '01/09/2017'

SELECT DATEPART(wk,@Date)
...