[sql] 특정 주에 속하는 모든 날짜 가져오기 함수
CREATE FUNCTION dbo.GetDatesInWeek (@Year INT, @WeekNumber INT)
RETURNS TABLE
AS
RETURN
(
    WITH AllDates AS 
    (
        SELECT DATEADD(DAY, number, CAST(CONCAT(@Year, '-01-01') AS DATE)) AS Date
        FROM master..spt_values
        WHERE type = 'P'
    )
    SELECT Date
    FROM AllDates
    WHERE DATEPART(WEEK, Date) = @WeekNumber
)
GO

이 함수는 주어진 연도와 주차에 해당하는 모든 날짜를 반환합니다. 다음으로 함수를 사용하여 특정 주에 해당하는 날짜를 가져올 수 있습니다.

SELECT Date
FROM dbo.GetDatesInWeek(2022, 42)

위의 코드를 실행하면 2022년의 42주에 해당하는 모든 날짜가 반환됩니다.

참고 문헌:

  1. https://docs.microsoft.com/en-us/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql?view=sql-server-ver15