MSSQL에서 날짜와 시간 데이터를 다룰 때는 CAST, CONVERT, FORMAT 등을 사용하여 다양한 형식으로 변환할 수 있습니다. 특히 화면 출력, 로그, 인터페이스 연동 시 원하는 포맷으로 변환하는 경우가 많기 때문에 자주 사용하는 형식을 표로 정리해두면 매우 편리합니다.
기본 형변환 함수
-- CAST
SELECT CAST(GETDATE() AS VARCHAR);
-- CONVERT
SELECT CONVERT(VARCHAR, GETDATE(), 120);
-- FORMAT (성능은 느림)
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss');
- FORMAT은 .NET 기반이라 성능이 느림 (대량 데이터 비추천)
- CONVERT가 가장 많이 사용됨
날짜/시간 변환 스타일 코드 정리
| 100 | mon dd yyyy hh | Mar 24 2026 3:30PM |
| 101 | mm/dd/yyyy | 03/24/2026 |
| 102 | yyyy.mm.dd | 2026.03.24 |
| 103 | dd/mm/yyyy | 24/03/2026 |
| 104 | dd.mm.yyyy | 24.03.2026 |
| 105 | dd-mm-yyyy | 24-03-2026 |
| 108 | hh:mm:ss | 15:30:45 |
| 110 | mm-dd-yyyy | 03-24-2026 |
| 111 | yyyy/mm/dd | 2026/03/24 |
| 112 | yyyymmdd | 20260324 |
| 120 | yyyy-mm-dd hh:mm | 2026-03-24 15:30:45 |
| 121 | yyyy-mm-dd hh:mm.mmm | 2026-03-24 15:30:45.123 |
| 126 | yyyy-mm-ddThh:mm | 2026-03-24T15:30:45 |
자주 사용하는 변환 예제
1. 날짜만 추출
SELECT CONVERT(VARCHAR(10), GETDATE(), 120);
결과: yyyy-mm-dd
2. 시간만 추출
SELECT CONVERT(VARCHAR(8), GETDATE(), 108);
결과: hh:mm:ss
3. 밀리초 포함
SELECT CONVERT(VARCHAR(23), GETDATE(), 121);
결과: yyyy-mm-dd hh:mm:ss.mmm
4. 숫자형 날짜 (YYYYMMDD)
SELECT CONVERT(VARCHAR(8), GETDATE(), 112);
결과: 20260324
5. 문자열 → 날짜 변환
SELECT CONVERT(DATETIME, '2026-03-24 15:30:45', 120);
주의점
- 문자열 형식과 스타일 코드 일치해야 함
FORMAT 함수 예시
SELECT FORMAT(GETDATE(), 'yyyyMMdd');
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss');
- 가독성은 좋지만 성능이 느림
- 대량 처리에는 CONVERT 권장
사용 시 주의사항
- VARCHAR 길이 부족하면 데이터 잘림 발생
- FORMAT은 인덱스 사용 불가 (성능 저하)
- 날짜 비교 시 문자열 변환보다 DATE 타입 유지 권장
- 지역 설정에 따라 결과 달라질 수 있음
반응형
'DB > MSSQL' 카테고리의 다른 글
| MSSQL 문자열 자르기 (0) | 2026.03.25 |
|---|---|
| MSSQL 테이블 복사하기 (0) | 2026.03.24 |
| MSSQL 테이블 목록 조회 (0) | 2025.03.27 |
| MSSQL 프로시저 내용 문자열 검색 조회 (0) | 2025.03.27 |