본문 바로가기

Database/MSSQL

MSSQL 데이터 형식 변환 함수 사용하는 방법(CAST, CONVERT)

 

MSSQL 데이터 형식 변환 함수 사용하는 방법(CAST, CONVERT)

MSSQL에서 입력된 데이터 형식을 다른 데이터 형식으로 변환해야 할 때가 종종 있다.
이럴 때 사용할 수 있는 함수가 바로 CAST함수 CONVERT함수이다.

 

두 함수 다 사용하는 방식만 조금 다를뿐 다른 데이터 형식으로 변환하는데 사용된다.
두 함수의 차이점은 CONVERT 함수에는 CAST 함수에 없는 스타일을 정의할 수 있는 기능이 있다.

 

Cast 함수

 

Cast 함수 사용하는 방법

 

CAST ( expression AS data_type [ ( length ) ] ) 


expression : 유효한 식이다.

data_type : 대상 데이터 형식으로 별칭 데이터 형식은 사용할 수 없다.

length : 대상 데이터 형식의 길이를 지정하는 선택적 정수로 기본값은 30 이다.

 

Cast 함수 사용 예제

 

SELECT CAST(10.3 AS int)


10


10.3을 int 형식으로 변환하여 10 이 출력된다. 

 

SELECT CAST(5 AS varchar) + 'BOX'


5BOX


int 형식의 5 을 CAST 함수를 사용하여 varchar 형식으로 변환하면 문자열인 'BOX'와 합쳐서 '5BOX'를 출력할 수 있다.

 

SELECT 5 + 'BOX'


varchar 값 'BOX'을(를) 데이터 형식 int(으)로 변환하지 못했습니다.


int 형식의 5와 vachar 형식의 'BOX' 합치려 하면 위와 같이 형식이 달라 오류가 발생하게 된다.

 

 

* '+'의 의미

'+'는 일반적으로 더하기의 의미를 가지고 있으나 문자열의 경우 더하기가 아닌 문자열 합치기의 역활을 한다.
즉 숫자 + 숫자 는 더하기를 하지만 문자열 + 문자열 는 더하기가 아닌 CONCAT 함수인 문자열 합치기 역활을 한다.

 

CONVERT 함수

 

CONVERT 함수 사용하는 방법

 

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )


data_type : 대상 데이터 형식으로 별칭 데이터 형식은 사용할 수 없다.

length : 대상 데이터 형식의 길이를 지정하는 선택적 정수로 기본값은 30 이다.

expression : 유효한 식이다.

style : CONVERT 함수가 식을 변환하는 방법을 지정하는 정수 식으로 NULL 스타일 값은 NULL을 반환한다.
         style 은 생략할 수 있으며, 생략하지 않고 사용하고자 하는 경우에는 datetime, float, real, money,

         smallmoney, xml, binary, char, varbinary, varchar에서 사용할 수 있다.

* style입, 출력에 대한 보다 자세한 사항은 마이크로소프트에서 제공하는 문서에서 참조하면 된다.
(https://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017)

 

CAST 및 CONVERT(Transact-SQL) - SQL Server

1, 21, 2 이진 data_type인 경우 식이 문자 식이어야 합니다.For a binary data_type, the expression must be a character expression. expression은 짝수 개의 16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, a, b, c, d, e, f)여야 합니다.The expression must have an even number of hexade

docs.microsoft.com

 

CONVERT 함수 사용 예제

 

SELECT CONVERT(int, 10.3)


10


CAST 함수와 동일하게 10.3을 int 형식으로 변환하여 10 이 출력할 수 있다. 또한 style 은 생략할 수 있다.

 

SELECT CONVERT(CHAR(19), GETDATE(), 20)


2019-07-29 17:27:41


CONVERT 함수를 사용하면 다양한 날짜 형식을 우리가 원하는 형태로 변경하여 출력 할 수 있다.

*  날짜 형식 변경의 더 자세한 사항은 [MSSQL CONVERT 함수 사용하여 다양한 날짜 형식 표현하기] 포스트에서 확인 가능하다.

2019/07/29 - [Database/MSSQL] - MSSQL CONVERT 함수 사용하여 다양한 날짜 형식 표현하기

 

MSSQL CONVERT 함수 사용하여 다양한 날짜 형식 표현하기

MSSQL에서 CONVERT 함수는 데이터 형태를 변환 할 수 있는 함수이다. 즉 CONVERT 함수는 데이터를 다른 유형으로 변환할 때 사용하는 함수이다. 특히 다양한 형식의 날짜를 표현할 때 자주 사용된다. CONVERT 함..

dongpal.tistory.com