[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을 기준으로 한 것으로, 데이터베이스 종류에 따라 문법이나 함수명이 다를 수 있습니다.
이처럼 날짜를 특정 단위로 변환하는 스칼라 함수를 사용하면 날짜 데이터를 다양한 형태로 활용할 수 있습니다.
참고 자료
- Microsoft Docs. “DATEPART (Transact-SQL)” https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql