Добрый день. Проблема в следующем.
Нужно определить:
1)Порядковый номер дня в календарном году
2)Название дня
3)Порядковый номер недели в календарном месяце
4)Порядковый номер месяца в календарном году
5)Порядковый номер квартала в календарном году
На несколько лет. Например с 1600-1605
Делал так:
DECLARE @Year VARCHAR (50)
DECLARE @EndYear VARCHAR (50)
SET @Year = '02/02/2002'
SET @EndYear = '01/31/2014'
SET LANGUAGE Russian
while (@Year <= @EndYear)
BEGIN
SELECT CAST(convert(char(8),@Year,112) as datetime) AS 'CalendarYear',
DATENAME(month, @Year) AS 'Month Name',
DATEPART(DAYOFYEAR,@Year) AS 'NumberDayInCalendarYear',
DATEPART(QUARTER, @Year) AS 'NumverOfQuarter',
DATEPART(MONTH, @Year) AS 'NubmerMounthInCalendarYear',
DATEPART(WEEK, @Year) AS 'NumberOfWeekInCalendarYear',
CAST(convert(char(6),@Year,112)+'01' as datetime) AS 'CalendarMonthStartDate',
DATEADD(day,-1, CONVERT(char(6), DATEADD(MONTH,1,@Year),112)+'01') AS 'CalendarMonthEndDate'
END
Однако, это получается бесконечный цикл. Как правльно сделать через цикл?
Заранее спасибо!