Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите получить календарный месяц  [new]
D_r_a_g_o_n
Member

Откуда:
Сообщений: 131
пример: 1 неделя с 29 по 4
2 неделя с 5 по 11
...........
5 неделя с 26 по 02
22 ноя 12, 15:02    [13513681]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
D_r_a_g_o_n,

номер недели ISO8601?
DATEPART(ISO_WEEK,...)

Собственно говоря, надо определить, когда начинается первая неделя.
Тогда остальные получаются элементарно, верно?
22 ноя 12, 15:14    [13513812]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
А почему название темы не соответствует содержанию вопроса?
22 ноя 12, 15:16    [13513832]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
D_r_a_g_o_n,

Исходные данные:
12790119
SELECT 
    t_date,    
    MIN(t_date) OVER (PARTITION BY DATEPART(ww,t_date)) mind,
    MAX(t_date) OVER (PARTITION BY DATEPART(ww,t_date)) maxd
FROM @turn 

Взять этот результат и сгруппировать.
22 ноя 12, 15:26    [13513917]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
trew
D_r_a_g_o_n,

Исходные данные:
12790119
SELECT 
    t_date,    
    MIN(t_date) OVER (PARTITION BY DATEPART(ww,t_date)) mind,
    MAX(t_date) OVER (PARTITION BY DATEPART(ww,t_date)) maxd
FROM @turn 

Взять этот результат и сгруппировать.
Это не по теме :(
22 ноя 12, 15:29    [13513938]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
dalex1973
Member

Откуда: Польша
Сообщений: 287
Так на скорую руку:

SET DATEFIRST 1;
DECLARE @Year int = 2013
DECLARE @Month int = 01
DECLARE @MonthStart date= CAST(@YEAR as nvarchar)+'-'+CAST(@Month as nvarchar)+'-01'
DECLARE @MonthEnd date= DATEADD(DAy,-1,DATEADD(MONTH,1, @Monthstart))
DECLARE @FirstDay date = DATEADD(DAY, 1-DATEPART(WEEKDAY, @Monthstart), @Monthstart);
DECLARE @LastDay date = DATEADD (WEEK, DATEDIFF (WEEK, 0, @MonthEnd)+1,0)-1;

;
WITH CTE_1
AS (
	SELECT @FirstDay AS InDay
		,1 AS WeekNr,DATEDIFF(WEEK,0,@FirstDay) AS FirstWeek
	
	UNION ALL
	
	SELECT DATEADD(day, 1, CTE_1.InDay)
		,DATEDIFF(WEEK,0,CTE_1.InDay)-CTE_1.FirstWeek+1
		,CTE_1.FirstWeek

	FROM CTE_1
	WHERE CTE_1.InDay < @LastDay
	)
SELECT MIN(CTE_1.InDay) AS FirstDay,MAX(CTE_1.InDay) AS LastDay,WeekNr from CTE_1
GROUP BY [CTE_1].WeekNр


FirstDayLastDayWeekNr
2012-12-312013-01-061
2013-01-072013-01-132
2013-01-142013-01-203
2013-01-212013-01-274
2013-01-282013-02-035
22 ноя 12, 16:09    [13514207]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
iap
trew
D_r_a_g_o_n,

Исходные данные:
12790119
SELECT 
    t_date,    
    MIN(t_date) OVER (PARTITION BY DATEPART(ww,t_date)) mind,
    MAX(t_date) OVER (PARTITION BY DATEPART(ww,t_date)) maxd
FROM @turn 

Взять этот результат и сгруппировать.
Это не по теме :(
Посмотрел я ещё раз и подумал, что у автора темы всё может быть.
Он даже спросить нормально не умеет.
"пример" у него, понимаешь!
Чего надо-то? А?
22 ноя 12, 16:24    [13514302]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
D_r_a_g_o_n
Member

Откуда:
Сообщений: 131
задам вопрос по другому.
Как получить первую и последнию неделю месяца с днями недели?
первая неделя должна начинаться с 29.10
пример
пн вт ср чт пт сб вс
29 30 01 02 03 04 05
23 ноя 12, 06:14    [13516697]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
D_r_a_g_o_n
Member

Откуда:
Сообщений: 131
dalex1973,
спасибо, щас попробую
23 ноя 12, 06:16    [13516698]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
Добрый Э - Эх
Guest
D_r_a_g_o_n,

Ф.А.К. уже читал? Ничего не подошло? Или не понял, как адаптировать под свою задачу?
23 ноя 12, 06:42    [13516713]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
D_r_a_g_o_n
Member

Откуда:
Сообщений: 131
не понял, читал
23 ноя 12, 06:51    [13516720]     Ответить | Цитировать Сообщить модератору
 Re: Помогите получить календарный месяц  [new]
D_r_a_g_o_n
Member

Откуда:
Сообщений: 131
вроде все сделал, спасибо всем
23 ноя 12, 07:52    [13516773]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить