DECLARE @start1 varchar(8)
DECLARE @start2 varchar(8)

DECLARE @date1 varchar(8)
DECLARE @date2 varchar(8)

DECLARE @tmp1 varchar(8)
DECLARE @tmp2 varchar(8)


SET @date1 = '20020101'
SET @date2 = (SELECT convert(varchar(8), getdate(), 112))



SET @start1 = @date1
SET @start2 = @date2


-- 시작 년/월일 부터 끝 년/월/일을 구해 루프를 돌린다.

WHILE @start1 <= @start2
BEGIN          
        
        -- 만약 일자가 31보다 크면 월을 1 누적시키고, 일을 '01'로 셋팅한다.
        IF substring(@start1, 7, 2) > 31
	BEGIN
		
		SET @tmp1 = convert(varchar(8), convert(int, substring(@start1, 1, 6)) + 1) + '01'
		
		set @start1 = @tmp1
		
		-- 만약 월이 12보다 크면 년을 1누적시키고 월/일을 '01' 로 셋팅한다.
		IF substring(@start1, 5, 2) > 12
		begin
		
		    SET @tmp1 = convert(varchar(8), convert(int, substring(@start1, 1, 4)) + 1) + '0101'		
		    
		    set @start1 = @tmp1
			
		end

		
	END
	
	-- 최종적으로 위의 조건에의해 년/월/일 형식으로 표현되어진다.
	print @start1	
	
	SET @start1 = @start1 + 1

END -- WHILE END