오늘은 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