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() | 포맷 지정 어려움 |
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] 트랜잭션 락 (Transaction Locking) 이슈 완벽 정리 (0) | 2025.03.26 |
---|---|
[MSSQL] Stored Procedure 실무 고급 활용 정리 (0) | 2025.03.26 |
[MSSQL] Stored Procedure 실무 완전정복 (0) | 2025.03.26 |
[MSSQL] 데이터 타입 (Data Type) 완전 정복 (0) | 2025.03.26 |
[MSSQL] 날짜와 시간 (0) | 2025.03.26 |