[sql] 날짜를 특정 단위로 변환하는 스칼라 함수 (YEAR, MONTH, DAY 등)

SQL에서 날짜를 다양한 형식으로 변환하는 것은 데이터 분석 및 보고서 작성에 매우 중요합니다. 이때 DATEPART 함수를 활용하면 날짜에서 년, 월, 일 및 다른 요소들을 추출할 수 있습니다.

아래 예제에서는 날짜를 연도, 월, 일로 각각 변환하는 SQL 스칼라 함수의 사용 방법을 알아보겠습니다.

-- 해당 날짜로부터 연도를 추출하는 함수
CREATE FUNCTION dbo.GetYearFromDate (@inputDate DATETIME)
RETURNS INT
AS
BEGIN
    DECLARE @year INT
    SET @year = DATEPART(YEAR, @inputDate)
    RETURN @year
END

-- 해당 날짜로부터 월을 추출하는 함수
CREATE FUNCTION dbo.GetMonthFromDate (@inputDate DATETIME)
RETURNS INT
AS
BEGIN
    DECLARE @month INT
    SET @month = DATEPART(MONTH, @inputDate)
    RETURN @month
END

-- 해당 날짜로부터 일을 추출하는 함수
CREATE FUNCTION dbo.GetDayFromDate (@inputDate DATETIME)
RETURNS INT
AS
BEGIN
    DECLARE @day INT
    SET @day = DATEPART(DAY, @inputDate)
    RETURN @day
END

위의 예제 코드는 T-SQL을 기준으로 한 것으로, 데이터베이스 종류에 따라 문법이나 함수명이 다를 수 있습니다.

이처럼 날짜를 특정 단위로 변환하는 스칼라 함수를 사용하면 날짜 데이터를 다양한 형태로 활용할 수 있습니다.

참고 자료