SQL Server/실기 정리
SQL Server 40강 - 형변환 함수 CAST()와 CONVERT()
코딩하는냥이
2025. 6. 4. 14:46
반응형
이번 글에서는 숫자형 데이터를 문자열로 변환하는 CAST()와 CONVERT() 함수의 사용법을 익혔습니다.
특히 형변환 시 주의해야 할 문자열 길이 초과에 따른 오류 상황도 함께 실습했습니다.
📌 예제 코드 ①: CAST() 함수 사용
SELECT
CAST(ipo_year AS nvarchar(50)) + ' ' + CAST(open_price AS nvarchar(50))
FROM nasdaq_company
WHERE symbol = 'MSFT';
💬 설명
- ipo_year과 open_price는 숫자형이므로 문자열로 변환 후 결합해야 함
- CAST()는 표준 SQL이며 다양한 DBMS에서 동일하게 사용 가능
- + 연산자로 문자열을 연결하기 위해 nvarchar로 명시적 형변환 수행
📌 예제 코드 ②: CONVERT() 함수 사용
SELECT
CONVERT(nvarchar(50), ipo_year) + ' ' + CONVERT(nvarchar(50), open_price)
FROM nasdaq_company
WHERE symbol = 'MSFT';
💬 설명
- CONVERT()는 SQL Server 전용 함수로, 변환 대상 데이터 유형을 먼저 지정
- 동작은 CAST()와 동일하지만, 날짜 포맷 등을 지정할 수 있는 확장 기능을 제공함
📌 예제 코드 ③: 자릿수 초과 오류 발생 예시
SELECT CONVERT(nvarchar(5), 1234567890);
⚠️ 오류 설명
- nvarchar(5)는 최대 5자의 문자열만 저장 가능
- 1234567890은 10자리 숫자 → 변환 불가
- 결과적으로 다음과 같은 오류 발생:
메시지 8115, 수준 16, 상태 2, 줄 XX
expression을(를) 데이터 형식 nvarchar(으)로 변환하는 중 산술 오버플로 오류가 발생했습니다.
- 이처럼 변환 대상 크기가 충분하지 않으면 오류가 발생할 수 있으므로
형변환 시 데이터 길이 확인은 필수입니다.
💡 포인트 정리
- CAST()와 CONVERT()는 숫자형 → 문자열형 변환에 사용됨
- CAST()는 표준 SQL, CONVERT()는 SQL Server 전용
- 변환 시 nvarchar(n)의 n 값이 너무 작으면 오버플로 오류 발생
- 긴 숫자 또는 문자열 변환 시는 충분한 길이 확보 필요
📌 정리하자면, 이번 강의에서는 형변환 함수 CAST()와 CONVERT()를 사용해
숫자형 데이터를 문자열로 변환하는 법과,
변환 대상의 길이가 짧을 경우 발생하는 오버플로 오류까지 실습해 보았습니다.
데이터 길이와 타입을 꼼꼼히 확인하는 습관이 중요합니다.