Получить номер недели от даты в T-SQLПолучить номер недели от даты в T-SQL
ответ
Посмотрите DATEPART
SELECT DATEPART(wk, GETDATE())
Как насчет количества недель между двумя датами @startdate и @enddate –
Попробуйте найти число недель между переменными. SELECT DATEPART (wk, @enddate) - DATEPART (wk, @startdate) –
Вот подробный ответ и почему использовать DATEPART (ISO_WEEK, GETDATE()) - http://dba.stackexchange.com/a/38682/ 100185 – HEDMON
Или использовать DATEDIFF как это: DATEDIFF(wk,GETDATE(),GETDATE()+7)
найти количество недель между двумя днями
лучше всего использовать следующее:
выберите DATEPART (ISO_WEEK, GetDate())
Как и когда у вас есть год с неделей 53, как в случае с 2015 годом, он дает ненадежные результаты. (Конечно, на 2008 R2)
выберите DATEPART (WK, '01/03/2016')
дает различные результаты около недели 53. При запуске через неделю после 3-го января он произвел значение 1. При запуске в настоящее время на ту же дату, что дает значение 2.
Кроме того, 'ISO_WEEK' предполагает, что неделя начинается по понедельникам и начинает отсчет (1) в первый понедельник, который встречается в этом году. 'WK' предполагает, что неделя начинается по воскресеньям и начинает отсчет (1) в новый день, независимо от того, в какой день. – Heliac
... в противном случае (как указал Эван) 'WK' начинает отсчет с 2 в первое воскресенье, встречающееся в этом году, если дата в прошлом. – Heliac
ИСО год также может быть вычислен:
YEAR(DATEADD(DAY, (4 - DATEPART(WEEKDAY, End_Date)), End_Date))
который обрабатывает первый день года в неделе предыдущего календарного года.
В соответствии с какой схемой нумерации в неделю? –
какая неделя нумерация system? ISO? –
и какую версию SQL Server вы используете? Это может иметь значение, если вы хотите номер недели ISO – AdaTheDev