kirthiga S Ответов: 2

Как получить номер недели месяца в SQL


Номер недели года можно вычислить с помощью функции Datepart, аналогично тому, как вычислить номер недели месяца.

Что я уже пробовал:

SELECT  DATEPART(WEEK,GETDATE())
--Номер недели в году

2 Ответов

Рейтинг:
1

OriginalGriff

Нет никакой конкретной функции "номер недели месяца" - действительно, я никогда не видел ее ни в одном фреймворке. В основном я подозреваю, потому что нет стандартного определения того, что представляет собой номер недели для месяца (есть для "Недели года", и это зависит от даты первого четверга: Дата недели ISO - Википедия[^]) но нет эквивалента месяцам, которые будут иметь те же проблемы. Является ли первое марта неделей 1 марта или неделей 3, 4 или 5 февраля? 29 февраля-это 4-я или 5-я неделя февраля, или 1-я неделя марта? Нет стандартного определения, поэтому нет стандартной функции.

Вам придется самим решать правила, а затем выполнять их. Удачи - это будет веселый проект...


Рейтинг:
1

Maciej Los

Проверить это:

declare @date datetime = '2012-09-01'
select datepart(day, datediff(day, 0, @date)/7 * 7)/7 + 1


От: tsql - как получить номер недели месяца от даты в sql server 2008[^]