Я пытаюсь создать таблицу календаря, которая содержит индивидные даты. Для каждой даты присутствует столбец, в котором указывается, на какой неделе, isowk, месяц, квартал и т. Д. Принадлежит.получить первую и последнюю дату 4-недельного периода
Это не большая проблема. Но теперь мы работаем с 4-недельными периодами, основанными на isowk. Так
date 2014-12-30 belongs to period 1 which starts on 2014-12-30 and ends on 2014-01-26
date 2014-02-01 belongs to period 2 which starts on 2014-01-27 and ends on 2014-03-02
date 2014-08-05 belongs to period 8 which starts on 2014-07-14 and ends on 2014-08-11
Легко вычислить, какой период дата принадлежит:
period_number = ceiling(cast(datepart(isowk,@date) as float) /4)
найти начало и конец этой конкретной недели это не так сложно как:
start_week = cast(DATEADD(wk,DATEDIFF(wk,0,@date),0) as date)
end_week = cast(DATEADD(wk,DATEDIFF(wk,0,@date),6) as date)
но как я могу рассчитать первую дату этого 4-недельный период?
спасибо за мышление со мной
Что происходит с годами с 53 неделями ISO, например. 2015-12-28 по 2016-01-03 - неделя 53 2015 года, станет ли это свой период, период 14-го 2015 года, или он перейдет в 2016 году? – GarethD
Это будет период 14, но с меткой «Период 1» – Henrov