Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server CONVERT 함수 완벽 정리 – 문법, 날짜 형식 코드, 실전 예제

이 글에서는 SQL Server에서 데이터 타입 변환에 사용되는 CONVERT 함수의 사용법을 구체적인 문법과 예제와 함께 자세히 소개하여, 함수를 더욱 쉽게 이해하고 실무에 바로 활용할 수 있도록 안내해 드립니다.

CONVERT 함수란?

SQL Server의 CONVERT 함수는 표현식(expression)을 원하는 데이터 타입으로 자유롭게 변환할 수 있게 해주는 함수입니다. 특히 날짜(date) 데이터 타입의 경우 지정된 형식에 따라 변환이 가능하다는 것이 큰 장점입니다. 만약 변환에 실패하면 CONVERT는 오류를 반환하고, 성공하면 해당 변환 값을 반환합니다.

CONVERT 함수 기본 문법

SQL Server에서 CONVERT 함수를 사용하는 기본 문법은 다음과 같습니다.

CONVERT (데이터타입 (길이), 표현식, 형식)

매개변수 설명

  1. 데이터타입: 표현식이 변환될 새로운 데이터 타입의 이름입니다. bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary, image 중 하나를 사용할 수 있습니다.
  2. 길이 (선택 사항): char, varchar, nchar, nvarchar, binary, varbinary 타입의 결과 값 길이를 지정합니다.
  3. 표현식: 다른 데이터 타입으로 변환할 대상 값입니다. 테이블의 컬럼 이름이나 새로운 데이터 타입으로 변환해야 하는 계산식도 사용할 수 있습니다.
  4. 형식 (선택 사항): 날짜 형식의 데이터를 문자열로 변환할 때 적용할 스타일을 지정하는 숫자 값입니다. 아래 표에서 CONVERT에서 자주 사용되는 형식 코드를 확인할 수 있습니다.

날짜 및 시간 형식 코드표

형식 (yy)형식 (yyyy)출력 형태
0100mon dd yyyy hh:miAM/PM (기본값)
1101mm/dd/yyyy (미국 표준)
2102yy.mm.dd (ANSI 표준)
3103dd/mm/yy (영국/프랑스 표준)
4104dd.mm.yy (독일 표준)
5105dd-mm-yy (이탈리아 표준)
6106dd mon yy
7107Mon dd, yy
8108hh:mi:ss
9109mon dd yyyy hh:mi:ss:mmmAM/PM
10110mm-dd-yy (미국 표준)
11111yy/mm/dd (일본 표준)
12112yymmdd (ISO 표준)
13113dd mon yyyy hh:mi:ss:mmm (유럽 표준 - 24시간제)
14114hh:mi:ss:mmm (24시간제)
20120yyyy-mm-dd hh:mi:ss (ODBC canonical - 24시간제)
21121yyyy-mm-dd hh:mi:ss:mmm (ODBC canonical - 24시간제)
-126yyyy-mm-ddThh:mi:ss:mmm (ISO8601 표준)
-127yyyy-mm-ddThh:mi:ss:mmmZ (ISO8601 표준)
-130dd mon yyyy hh:mi:ss:mmmAM/PM (Hijri 표준)
-131dd/mm/yy hh:mi:ss:mmmAM/PM (Hijri 표준)

CONVERT 함수 사용 시 주의사항

  1. float 또는 numeric 데이터 타입을 정수(int)로 변환할 때, CONVERT는 소수점 이하 자릿수를 반올림하지 않고 잘라냅니다.
  2. CAST, TRY_CAST, TRY_CONVERT 함수도 함께 참고하면 상황에 맞는 변환 방법을 선택하는 데 도움이 됩니다.
  3. CONVERT 함수는 SQL Server 2005부터 SQL Server 2008, 2008 R2, 2012, 2014, 2016, 그리고 2017까지 모든 버전에서 사용할 수 있습니다.

CONVERT 함수 예제

다양한 예제를 통해 SQL Server에서 CONVERT 함수가 실제로 어떻게 동작하는지 살펴보겠습니다.

SELECT CONVERT(int, 14.85);
-- 결과: 14 (소수점 이하 절사)

SELECT CONVERT(float, 14.85);
-- 결과: 14.85

SELECT CONVERT(varchar, 15.6);
-- 결과: '15.6'

SELECT CONVERT(varchar(4), 15.6);
-- 결과: '15.6'

SELECT CONVERT(float, '15.6');
-- 결과: 15.6

SELECT CONVERT(datetime, '2019-05-02');
-- 결과: '2019-05-02 00:00:00.000'

SELECT CONVERT(varchar, '05/02/2019', 101);
-- 결과: '05/02/2019'

위 예제에서 볼 수 있듯이, CONVERT 함수는 숫자 간 변환은 물론 문자열과 날짜 타입 간의 변환까지 폭넓게 지원합니다. 세 번째 인자인 형식 코드를 활용하면 날짜 데이터를 국가별 표준 형식의 문자열로 손쉽게 변환할 수 있으므로, 보고서 작성이나 데이터 출력 시 유용하게 활용할 수 있습니다.