상세 컨텐츠

본문 제목

SQL스크립트로 원하는 주(Week)차의 첫번째 날짜를 구해보자

프로그래밍/DB

by 라제폰 2008. 12. 23. 09:03

본문


오늘은 SQL스크립트로 해(Year)와 주(Week)를 주었을 때 해당되는 주의 첫 번째 날짜를 구하는

사용자 정의 함수를 만들어보자.

예를 들어

select dbo.udf_mondayofaweek(45,2005) 
--위를 실행하면 결과는 아래와 같다.
2005-10-31 00:00:00.000 2005년 10월 31일 오늘은 2005년의 45번째 주의 첫 번째 날임을 알 수 있다.

아래는 해당 사용자함수를 만드는 스크립트이다.

 

======================================================================================

 

SET DATEFIRST 1
GO

CREATE FUNCTION DBO.UDF_MONDAYOFAWEEK(
    @WEEK INT,
    @YEAR VARCHAR(4))
    RETURNS DATETIME
AS
BEGIN
    DECLARE @DATE VARCHAR(10)
    DECLARE @FIRSTDAYOFWEEK DATETIME

    SET @DATE = '01/01/' + @YEAR
    SET @DATE = CONVERT(VARCHAR(10), CONVERT(DATETIME, @DATE) - (DATEPART(DW,@DATE)-1),101)
    SET @FIRSTDAYOFWEEK = DATEADD(WW, @WEEK-1, @DATE)
   
    RETURN @FIRSTDAYOFWEEK
END

GO

관련글 더보기