[sql] 특정 날짜가 월의 마지막 요일인지 확인하는 함수

아래는 함수가 반환하는 값을 빈도표로 보여줍니다.

요일 월의 마지막 요일 여부
Monday False
Tuesday False
Wednesday False
Thursday False
Friday False
Saturday False
Sunday True

위와 같이 함수는 입력된 날짜가 해당 월의 마지막 요일이면 True를, 그렇지 않으면 False를 반환할 것입니다.

함수를 작성한 후, SQL 서버와 호환되는 코드 예제를 통해 보여드리도록 하겠습니다.


CREATE FUNCTION IsLastWeekdayOfMonth(@inputDate DATE)
RETURNS BIT
AS
BEGIN
    DECLARE @lastDayOfMonth DATE;
    SET @lastDayOfMonth = EOMONTH(@inputDate);
    
    IF DATEDIFF(DAY, @inputDate, @lastDayOfMonth) < 7
    AND DATEPART(WEEKDAY, @lastDayOfMonth) = DATEPART(WEEKDAY, @inputDate)
    BEGIN
        RETURN 1;
    END
    RETURN 0;
END;

위 코드는 IsLastWeekdayOfMonth라는 이름의 함수를 생성합니다. 함수는 입력된 날짜가 해당 월의 마지막 요일이면 1을 반환하고, 그렇지 않으면 0을 반환할 것입니다.

이제 이 함수를 사용하여 예제를 실행하고 결과를 확인할 수 있습니다. 함수를 호출하여 특정 날짜가 해당 월의 마지막 요일인지를 확인할 수 있습니다.

SELECT dbo.IsLastWeekdayOfMonth('2023-05-26') AS IsLastWeekday;

이렇게 함수를 사용하여 특정 날짜가 해당 월의 마지막 요일인지 확인할 수 있습니다.