DB/MSSQL

MSSQL 날짜/시간 형변환 한눈에 정리

devmean 2026. 3. 24. 17:27

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