본문 바로가기
DATABASE

[MS-SQL] CONVERT 함수 완벽 이해하기 – 실습 예제와 함께 배우는 변환 함수

by 평산훈남 2025. 7. 28.
🔍 요약: MS-SQL 형변환 함수인 CONVERT 함수의 개념과 사용방법을 설명하고 실제 예제를 통하여 실습해 봅니다. 실전에서 가장 많이 사용되는 유형에 대해서도 알아봅니다.

MSSQL CONVERT 함수

 

QUERY를 사용하다 보면 데이터의 형(TYPE)을 변환해야 할 때가 있어요.

COLUMN TYPE은 DATE인데 결과물은 STRING 으로 조회 해야한다던지, 아니면 그 반대로 해야 한다던지. 이런 경우는 아주 빈번하게 발생하는 일이에요.

 

MS-SQL DB에서 이럴때 사용하는 함수가 바로 CAST와 CONVERT 함수에요. 둘다 동일하게 데이터의 형을 변경하는데 왜 두가지의 함수가 있냐구요? 그건 바로 두 함수의 기능의 차이 때문이에요.

 

CAST 함수는 사용하기에는 매우 간단하고 쉽지만 단순히 데이터의 형을 변경하기만 할 뿐 다른 기능이 없어요. 하지만 CONVERT 함수는 데이터의 형을 변경하면서 결과물의 FORMAT도 변경할 수 있다는 큰 장점이 있어요. 하지만 FORMAT 지정에 대한 옵션값들을 따로 메모해 두거나 외워서 사용해야 하는 번거로움도 있죠.

 

오늘은 이 CONVERT함수의 사용방법을 알아보고 예제를 통하여 실습 결과까지 공유해 보도록 할게요.

📌 CONVERT 함수란?
CONVERT 함수는 MS-SQL에서 데이터 타입을 변환할 때 사용하는 함수입니다. 특히 실무에서는 날짜, 문자열 간의 변환 시 자주 활용됩니다.

 

반응형

1.CONVER 함수 기본 문법

CONVERT 함수는 데이터의 형변환을 위하여 사용되므

CONVERT (data_type [ (length) ], expression [, style])

 

  • data_type: 변환할 대상 데이터 형식
  • expression: 변환하고자 하는 원본 값
  • style: (선택) 특히 날짜/시간 형식을 문자열로 변환할 때 사용하는 숫자 코드

 

위의 옵션 중 style의 숫자코드를 이용해서 최종 결과물의 format을 지정할 수 있어요.

 

🧪 기본 사용 예제

1. 날짜를 문자열로 변환

SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS [YYYY-MM-DD]

📌 style 120은 YYYY-MM-DD HH:MI:SS 포맷 중 앞부분만 자른 결과를 보여줍니다.

 

2. 문자열을 날짜로 변환

SELECT CONVERT(DATETIME, '2025-06-05 14:30:00', 120) AS ConvertedDate
 

📌 문자열이 날짜 형식일 경우, 정확한 style을 지정하면 DATETIME 형식으로 변환됩니다.

 

 

반응형

2.CONVERT 함수 옵션 정리

 

아래에 DATE -> CHAR 형변환 옵션을 정리했어요. 아~주 많은 옵션이 있지만 실무에서 사용되는 옵션은 몇가지 없어요. 자주 사용되는 옵션은 아래 표에서 붉은색으로 표시 했으니 한번씩 실습해 보세요.

Style Query Result Date Format
0 CONVERT(CHAR(18), GETDATE(), 0) 06 05 2025  5:27PM mon dd yyyy hh:miPM
1 CONVERT(CHAR(8), GETDATE(), 1) 06/05/25 mm/dd/yy
2 CONVERT(CHAR(8), GETDATE(), 2) 15.06.05 yy.mm.dd
3 CONVERT(CHAR(8), GETDATE(), 3) 05/06/25 dd/mm/yy
4 CONVERT(CHAR(8), GETDATE(), 4) 05.06.25 dd.mm.yy
5 CONVERT(CHAR(8), GETDATE(), 5) 05-06-25 dd-mm-yy
6 CONVERT(CHAR(8), GETDATE(), 6) 05 06 25 dd mon yy
7 CONVERT(CHAR(9), GETDATE(), 7) 06 05, 25 Mon dd, yy
8 CONVERT(CHAR(8), GETDATE(), 8) 17:27:41 hh:mi:ss
9 CONVERT(CHAR(25), GETDATE(), 9) 06 05 2025  5:27:41:857PM mon dd yyyy hh:mi:ss:mmmPM
10 CONVERT(CHAR(8), GETDATE(), 10) 06-05-25 mm-dd-yy
11 CONVERT(CHAR(8), GETDATE(), 11) 25/06/05 yy/mm/dd
12 CONVERT(CHAR(6), GETDATE(), 12) 250605 yymmdd
13 CONVERT(CHAR(23), GETDATE(), 13) 05 06 2025 17:27:41:857 dd mon yyyy hh:mi:ss:mmm(24h)
14 CONVERT(CHAR(12), GETDATE(), 14) 17:27:41:857 hh:mi:ss:mmm(24h)
20 CONVERT(CHAR(19), GETDATE(), 20) 2025-06-05 17:27:41 yyyy-mm-dd hh:mi:ss(24h)
21 CONVERT(CHAR(23), GETDATE(), 21) 2026-06-05 17:27:41.857 yyyy-mm-dd hh:mi:ss.mmm(24h)
22 CONVERT(CHAR(20), GETDATE(), 22) 07/29/19  5:27:41 PM mm/dd/yy hh:mi:ss PM
23 CONVERT(CHAR(10), GETDATE(), 23) 2019-07-29 yyyy-mm-dd
24 CONVERT(CHAR(8), GETDATE(), 24) 17:27:41 hh:mi:ss(24h)
25 CONVERT(CHAR(23), GETDATE(), 25) 2019-07-29 17:27:41.857 yyyy-mm-dd hh:mi:ss.mmm(24h)
100 CONVERT(CHAR(18), GETDATE(), 100) 07 29 2019  5:27PM mon dd yyyy hh:miPM
101 CONVERT(CHAR(10), GETDATE(), 101) 07/29/2019 mm/dd/yyyy
102 CONVERT(CHAR(10), GETDATE(), 102) 2019.07.29 yyyy.mm.dd
103 CONVERT(CHAR(10), GETDATE(), 103) 29/07/2019 dd/mm/yyyy
104 CONVERT(CHAR(10), GETDATE(), 104) 29.07.2019 dd.mm.yyyy
105 CONVERT(CHAR(10), GETDATE(), 105) 29-07-2019 dd-mm-yyyy
106 CONVERT(CHAR(10), GETDATE(), 106) 29 07 2019 dd mon yyyy
107 CONVERT(CHAR(11), GETDATE(), 107) 07 29, 2019 Mon dd, yyyy
108 CONVERT(CHAR(8), GETDATE(), 108) 17:27:41 hh:mi:ss
109 CONVERT(CHAR(25), GETDATE(), 109) 07 29 2019  5:27:41:857PM mon dd yyyy hh:mi:ss:mmmPM
110 CONVERT(CHAR(10), GETDATE(), 110) 07-29-2019 mm-dd-yyyy
111 CONVERT(CHAR(10), GETDATE(), 111) 2019/07/29 yyyy/mm/dd
112 CONVERT(CHAR(8), GETDATE(), 112) 20190729 yyyymmdd
113 CONVERT(CHAR(23), GETDATE(), 113) 29 07 2019 17:27:41:857 dd mon yyyy hh:mi:ss:mmm(24h)
114 CONVERT(CHAR(12), GETDATE(), 114) 17:27:41:857 hh:mi:ss:mmm(24h)
120 CONVERT(CHAR(19), GETDATE(), 120) 2019-07-29 17:27:41 yyyy-mm-dd hh:mi:ss(24h)
121 CONVERT(CHAR(23), GETDATE(), 121) 2019-07-29 17:27:41.857 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 CONVERT(CHAR(23), GETDATE(), 126) 2019-07-29T17:27:41.857 yyyy-mm-ddThh:mi:ss.mmm
127 CONVERT(CHAR(23), GETDATE(), 127) 2019-07-29T17:27:41.857 yyyy-mm-ddThh:mi:ss.mmmZ
131 CONVERT(CHAR(25), GETDATE(), 131) 27/11/1440  5:27:41:857PM dd/mm/yyyy hh:mi:ss:mmmPM
반응형

 

 

3.실습: 회원가입 일자 포맷 맞추기

가상의 회원 테이블을 예로 들어볼게요.

테이블 예시

CREATE TABLE Members (
    MemberID INT
  , Name NVARCHAR(50)
  , JoinDate DATETIME
);

실습 쿼리

SELECT Name
     , CONVERT(VARCHAR(10), JoinDate, 120) AS FormattedJoinDate 
FROM Members;

✅ 결과: 2025-06-05 12:26:32 와 같은 형식으로 출력됩니다.

 

📝 마무리 정리

  • CONVERT()는 데이터 형식을 유연하게 다룰 수 있는 함수로, 특히 날짜 처리에서 빛을 발합니다.
  • style 파라미터를 활용하면 다양한 국가 및 시스템 표준에 맞춰 출력 형식을 조정할 수 있습니다.
  • 실무에서 날짜 데이터를 정리하거나 레포트용 데이터를 출력할 때 꼭 활용하세요!

💬 읽어주셔서 감사합니다.
공감 + 댓글 은 큰 힘이 됩니다.

여러분의 응원은 컨텐츠 제작에 큰 힘이 됩니다! 😊

 

반응형