프로그래밍/MSSQL

[MSSQL] DATETIME 포맷 방법

KRLAND 2025. 3. 26. 16:19
 

MSSQL에서 DATETIME을 다양한 형태로 포맷하는 모든 방법을 총정리합니다.
👇 아래 내용 보시면 정말 어떤 포맷이든 다 만들 수 있어요.


 MSSQL DATETIME 포맷팅 방법 3가지

방법특징권장 용도
CONVERT() 스타일 코드 기반, 속도 빠름 고정된 포맷 출력, 실무에서 자주 사용
FORMAT() 자유도 높고 직관적이지만 느릴 수 있음 사용자 화면용 출력, 다국어 지원
CAST() 단순 타입 변경 보통은 다른 용도와 함께 사용됨

 1. CONVERT() 스타일 코드 전체 정리

CONVERT(VARCHAR, 날짜컬럼, 스타일번호)
스타일번호 포맷예시 (2025-03-26 14:37:12.123)
100 mon dd yyyy hh:miAM Mar 26 2025 2:37PM
101 mm/dd/yyyy 03/26/2025
102 yyyy.mm.dd 2025.03.26
103 dd/mm/yyyy 26/03/2025
104 dd.mm.yyyy 26.03.2025
105 dd-mm-yyyy 26-03-2025
106 dd mon yyyy 26 Mar 2025
107 Mon dd, yyyy Mar 26, 2025
108 hh:mm:ss (24시간) 14:37:12
109 mon dd yyyy hh:mi:ss:mmmAM Mar 26 2025 2:37:12:123PM
110 mm-dd-yyyy 03-26-2025
111 yyyy/mm/dd 2025/03/26
112 yyyymmdd 20250326
120 yyyy-mm-dd hh:mi:ss (ISO) 2025-03-26 14:37:12
121 yyyy-mm-dd hh:mi:ss.mmm (ISO) 2025-03-26 14:37:12.123
126 yyyy-mm-ddThh:mi:ss.mmm 2025-03-26T14:37:12.123

💡 스타일 번호는 외워둘 필요 없고, 자주 쓰는 것들만 익히면 돼요 (특히 120, 121, 112, 103, 108)


 2. FORMAT() — 가장 자유로운 포맷 방법

FORMAT(날짜값, '포맷문자열' [, '언어코드'])

자주 사용하는 포맷 문자열


포맷 문자열의미 결과 예시
yyyy 연도 4자리 2025
MM 월 (01~12) 03
dd 일 (01~31) 26
HH 24시간 14
hh 12시간 02
mm 37
ss 12
tt AM/PM PM
dddd 요일 (전체) Wednesday
ddd 요일 (축약) Wed
MMMM 월 이름 March
yyyy년 MM월 dd일 한글 포맷 2025년 03월 26일
yyyy-MM-dd HH:mm:ss 완전한 포맷 2025-03-26 14:37:12

예시:

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss');
-- 2025-03-26 14:37:12
SELECT FORMAT(GETDATE(), 'dddd, MMMM dd, yyyy', 'en-US');
-- Wednesday, March 26, 2025
SELECT FORMAT(GETDATE(), 'yyyy년 MM월 dd일 dddd', 'ko-kr');
-- 2025년 03월 26일 수요일

💡 FORMAT()은 보고서, 화면용 출력에는 좋지만, 성능이 중요한 쿼리에는 주의.


 3. CAST() — 간단 변환

SELECT CAST(GETDATE() AS VARCHAR);
-- 결과 예: Mar 26 2025 2:37PM

날짜를 그냥 문자열로 변환할 때 사용. 포맷 제어는 불가.


 실전 포맷 예제 모음

📌 날짜만 뽑기

SELECT CONVERT(VARCHAR(10), GETDATE(), 120);
-- 2025-03-26
SELECT FORMAT(GETDATE(), 'yyyy.MM.dd');
-- 2025.03.26

📌 시간만 뽑기

SELECT CONVERT(VARCHAR(8), GETDATE(), 108);
-- 14:37:12
SELECT FORMAT(GETDATE(), 'HH:mm:ss');
-- 14:37:12

📌 요일 포함 날짜

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd (dddd)', 'ko-kr');
-- 2025-03-26 (수요일)

📌 날짜/시간을 ISO 8601 형식으로

SELECT CONVERT(VARCHAR, GETDATE(), 126);
-- 2025-03-26T14:37:12.123

✅ 요약 정리


목적 추천 방법 포인트
일반 날짜/시간 변환 CONVERT() 스타일 코드 사용, 속도 빠름
자유로운 포맷 (요일, 언어 등) FORMAT() "yyyy-MM-dd dddd" 등으로 표현 가능
단순 변환 CAST() 포맷 지정 어려움