[sql] 오늘은 주어진 날짜 범위 내에 있는지 확인하는 함수
SQL에서는 날짜 범위 내에 있는지 확인하는 함수가 유용하게 사용됩니다. 특히, 특정 날짜 범위에 해당하는 데이터를 조회하거나 조건을 검증하는 데 많이 활용됩니다. 이번에는 주어진 날짜가 특정 날짜 범위 내에 있는지 확인하는 SQL 함수를 작성하는 방법에 대해 알아보겠습니다.
문제 정의
일반적으로, 특정 테이블에서 start_date와 end_date 컬럼이 있고, 이를 기준으로 어떤 날짜가 해당 범위 내에 있는지 확인해야 할 때가 있습니다. 이 때, 아래와 같이 주어진 날짜가 해당 범위 내에 있는지 확인하는 함수가 필요합니다.
해결 방법
CREATE FUNCTION IsDateInRange
(
@checkDate DATE,
@startDate DATE,
@endDate DATE
)
RETURNS BIT
AS
BEGIN
DECLARE @result BIT
SET @result =
CASE
WHEN @checkDate BETWEEN @startDate AND @endDate THEN 1
ELSE 0
END
RETURN @result
END
위 코드는 주어진 날짜가 start_date와 end_date 사이에 있는지 확인하는 함수를 정의합니다. 함수내에서 @checkDate 인자가 @startDate보다 크고 @endDate보다 작은지를 확인하고, 이에 따라 1 또는 0을 반환합니다.
이제 위 함수를 사용하여 날짜 범위 내에 있는 데이터를 쉽게 확인하고, 조건을 검증할 수 있습니다.
마무리
이번 글에서는 SQL에서 주어진 날짜 범위 내에 있는지 확인하는 함수를 작성하는 방법에 대해 알아보았습니다. 이 함수를 사용하여 효율적으로 날짜 범위를 다룰 수 있으며, 데이터 분석이나 조회 시 유용하게 활용할 수 있습니다.
참고 자료
- Microsoft Docs. “CREATE FUNCTION (Transact-SQL)” https://docs.microsoft.com/en-us/sql/t-sql/statements/create-function-transact-sql