SQL Server 2005에서 Datetime에서 Month와 Year 추출하기

데이터베이스 작업을 하다 보면 특정 구성 요소를 추출하기 위해 날짜 및 시간 데이터를 조작해야 할 필요가 자주 발생합니다. SQL Server 2005에서 흔히 요청되는 사항은 datetime 값에서 monthyear를 추출하고 이를 문자열 형식으로 포맷하는 것입니다. 예를 들어 ‘Jan 2008’과 같은 형식입니다. 이 문제에 직면하고 계신다면 당신만이 아닙니다. 효율적으로 이를 수행하는 방법을 알아보겠습니다.

문제점

datepartconvert와 같은 많은 내장 함수들이 직접적으로 원하는 출력 형식을 제공하지 않을 수 있습니다. 이로 인해 ‘Jan 2008’ 형식으로 월과 년을 얻는 간단한 솔루션이 없다고 생각할 수 있습니다. 하지만 SQL 구문을 사용하여 목표를 달성하는 방법이 분명히 있습니다.

솔루션

datetime에서 monthyear를 추출하고 이를 단일 형식화된 문자열로 결합하려면, CONVERT 함수를 두 번 사용하고 문자열 연결을 이용할 수 있습니다. 다음은 솔루션의 단계별 분석입니다:

1단계: CONVERT 함수 사용하기

SQL Server의 CONVERT 함수는 한 데이터 타입을 다른 데이터 타입으로 변경할 수 있게 해줍니다. 우리의 목적을 위해 datetime 값을 문자열로 변환할 것입니다.

CONVERT(CHAR(4), date_of_birth, 100) 

이 코드 조각은 가상의 열인 date_of_birth에서 월과 년을 추출합니다. 스타일 100은 전체 월 이름을 제공합니다.

2단계: 년도 가져오기

년도를 추출하기 위해 다른 스타일로 또 다른 CONVERT 함수를 사용합니다:

CONVERT(CHAR(4), date_of_birth, 120)

이렇게 하면 4자리 형식 (‘2008’와 같은)으로 년도가 반환됩니다.

3단계: 결과 결합하기

월과 년이 별도로 추출되면, 이들을 연결하여 원하는 출력을 형성할 수 있습니다.

SELECT 
  CONVERT(CHAR(4), date_of_birth, 100) + ' ' + CONVERT(CHAR(4), date_of_birth, 120) AS MonthYear
FROM customers

예시 쿼리

아래는 customers 테이블에서 date_of_birth라는 datetime 열에서 월과 년을 검색하기 위한 전체 SQL 쿼리입니다:

SELECT 
  CONVERT(CHAR(4), date_of_birth, 100) + ' ' + CONVERT(CHAR(4), date_of_birth, 120) AS MonthYear
FROM customers

추가 자료

CONVERT 함수의 더 많은 형식 옵션과 이해를 원하시면 공식 SQL Server 문서를 확인하세요.

결론

SQL Server 2005에서 datetime에서 monthyear를 추출하고 포맷하는 것은 CONVERT 함수를 효과적으로 사용하는 방법을 알면 간단합니다. 위 방법으로 월과 년별로 결과를 쉽게 그룹화할 수 있어 날짜 기반 분석을 수월하게 수행할 수 있습니다.

이제 필요에 따라 datetime 값을 자신 있게 검색하고 포맷할 수 있습니다!