知/MSSQL

[함수] 해당 월 3번째 일요일 구하기

채수욱 2008. 7. 9. 18:57

 Create FUNCTION FN_3thSun(@month CHAR(6))
--select [mone] = dbo.FN_3thSun('200704')
RETURNS CHAR(8)

BEGIN
 DECLARE  @DT   VARCHAR(8),
    @ST   INT,
    @ET   INT,
   @FT   INT,
   @LT   VARCHAR(8),
   @3ThSun CHAR(8)
 
 SET @DT = LTRIM(RTRIM(@month))
 SELECT @ST = DATEPART(dw,@DT+'01')  -- 해당월 의 1일 에 대한 요일 값 : 토 = 6
 IF(@ST <> 1)
  BEGIN
   SELECT @ET = 8 - @ST  
   SELECT @FT = 1 + @ET
   SELECT @Lt =@DT + CONVERT(CHAR,@FT+14,112)
  END
 ELSE
  BEGIN
   SELECT @ET = 8 - @ST  
   SELECT @FT = 1 + @ET
   SELECT @LT = @DT +CONVERT(CHAR,@FT+7,112)
  END
 
 SELECT @3ThSun  = CONVERT(CHAR(8)
         , DATEADD(DD, -1 * (DATEPART(WEEKDAY, @Lt) - 1), @Lt)
         , 112)
 RETURN @3ThSun
END

 

 

-- Writer jae-Sung Lee