[MSSQL] 날짜 변환 방법 완벽 정리 (CONVERT, FORMAT)
- 데이터베이스/MSSQL
- 2025. 6. 12.
SQL Server에서 문자열을 날짜로 변환하거나, 문자열을 날짜로 변환할 때 CONVERT, FORMAT, CAST 같은 다양한 함수를 사용하여 결과를 얻을 수 있다. CONVERT() 함수는 날짜 스타일 코드를 통해 입력 문자열의 형식을 명확하게 지정할 수 있으며, FORMAT() 함수는 출력 형태를 자유롭게 지정할 수 있어서 조금 더 직관적이고 쉽게 포맷을 지정할 수 있다. CAST 함수는 ANSI SQL 표준 함수이기 때문에 다양한 DBMS와 호환이 된다.
| 목차 |
날짜를 문자열로 변환 방법 (CONVERT, FORMAT)
SELECT CONVERT(VARCHAR, GETDATE(), 120) AS result1
, CONVERT(VARCHAR(10), GETDATE(), 120) AS result2
, CONVERT(VARCHAR(16), GETDATE(), 120) AS result3
![]() |
CONVERT(VARCHAR, GETDATE(), 120) :
현재 날짜와 시간을 스타일 코드 120 형식으로 전체 포맷 yyyy-mm-dd hh:mi:ss 형식을 출력된다.
CONVERT(VARCHAR(10), GETDATE(), 120) :
VARCHAR(10)은 앞 10자리만 출력되어 yyyy-mm-dd 형식의 날짜만 출력한다.
CONVERT(VARCHAR(16), GETDATE(), 120) :
VARCHAR(16)으로 길이를 지정하여 날짜와 시:분까지 (yyyy-mm-dd hh:mi)를 출력한다.
SELECT CONVERT(VARCHAR, GETDATE(), 112) AS result1
, CONVERT(VARCHAR, GETDATE(), 111) AS result2
, CONVERT(VARCHAR, GETDATE(), 102) AS result3
![]() |
CONVERT 함수에서 다양한 스타일 코드를 사용하여 날짜를 문자열로 변환할 수 있다.
112 : yyyymmdd
111 : yyyy/mm/dd
102 : yyyy.mm.dd
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS result1
, FORMAT(GETDATE(), 'yyyy-MM-dd') AS result2
, FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm') AS result3
SQL Server 2012 이상에서는 FORMAT 함수를 사용하여 날짜의 출력 형식을 자유롭게 문자열로 출력할 수 있다.
포맷 문자열은 .NET 형식을 따르므로 'yyyy', 'MM', 'dd', 'HH', 'mm', 'ss' 대소문자를 정확히 써야 한다.
SELECT FORMAT(GETDATE(), 'yyyyMMdd') AS result1
, FORMAT(GETDATE(), 'yyyy/MM/dd') AS result2
, FORMAT(GETDATE(), 'yyyy.MM.dd') AS result3
FORMAT 함수는 CONVERT 함수에 비하여 조금 더 직관적으로 포맷을 지정하여 출력할 수 있다.
문자열을 날짜로 변환 방법 (CONVERT, CAST)
SELECT CONVERT(DATE, '2026-06-12') AS result1
, CONVERT(DATE, '2026/06/12') AS result2
, CONVERT(DATE, '20260612') AS result3
![]() |
CONVERT 함수를 사용하여 yyyy-mm-dd, yyyy/mm/dd, yyyymmdd와 같은 형식 문자열을 날짜로 쉽게 변활 할 수 있다.
SELECT CONVERT(DATETIME, '2026-06-12 23:28:34') AS result1
, CONVERT(DATETIME, '2026/06/12') AS result2
, CONVERT(DATETIME, '20260612') AS result3
![]() |
날짜 + 시간이 포함된 문자열인 경우 DATETIME 데이터 형식을 사용하여 문자열을 날짜로 변환하면 된다.
SELECT CONVERT(DATE, '06/12/2026', 101) AS result1
, CONVERT(DATE, '2026-06-12', 120) AS result2
, CONVERT(DATETIME, '2026-06-12 23:28:34', 120) AS result3
![]() |
CONVERT() 함수에서 스타일 코드(101, 120...)를 지정하면, 문자열의 날짜 형식을 명확하게 해석하여 형 변환 오류를 방지할 수 있다.
SELECT CAST('2026-06-12' AS DATE) AS result1
, CAST('2026/06/12' AS DATE) AS result2
, CAST('20260612' AS DATE) AS result3
, CAST('2026-06-12 23:28:34' AS DATETIME) AS result4
![]() |
CAST()는 ANSI SQL 표준 함수이다. 따라서 Oracle, PostgreSQL, MySQL 등 다양한 DBMS에서 공통적으로 사용 가능하다.
날짜를 문자열로 변환할 때는 CAST()보다는 CONVERT()와 스타일 코드를 활용하는 것이 오류 방지, 가독성 확보, 포맷 일관성 유지 등 훨씬 효율적일 수 있다.
날짜 스타일 코드(포맷) 정리표
| 스타일 코드 | 포맷 형식 |
| 100 | mon dd yyyy hh:miAM |
| 101 | mm/dd/yyyy |
| 102 | yyyy.mm.dd |
| 103 | dd/mm/yyyy |
| 104 | dd.mm.yyyy |
| 105 | dd-mm-yyyy |
| 106 | dd mon yyyy |
| 107 | Mon dd, yyyy |
| 108 | hh:mm:ss |
| 109 | mon dd yyyy hh:mi:ss:mmmAM |
| 110 | mm-dd-yyyy |
| 111 | yyyy/mm/dd |
| 112 | yyyymmdd |
| 113 | dd mon yyyy hh:mi:ss:mmm |
| 114 | hh:mi:ss:mmm |
| 120 | yyyy-mm-dd hh:mi:ss |
| 121 | yyyy-mm-dd hh:mi:ss.mmm |
| 126 | yyyy-mm-ddThh:mi:ss.mmm |
| 130 | dd mon yyyy hh:mi:ss:mmmAM |
| 131 | dd/mm/yyyy hh:mi:ss:mmmAM |





