본문 바로가기

Programming/Microsoft SQL Server

[SQL] 형변환 함수

Cast와 Convert는 모두 숫자를 문자열형이나 실수형으로 바꾸는 등의 형변환을 해주는 함수입니다.

1. Cast

특정 Data를 명시적으로 바꾸어 주는 함수로서 기본적은 구문은 다음과 같습니다.

Cast(데이터 As 변환형)

Data에는 변환대상을, 변환형에는 변환하고자 하는 형을 입력합니다.

Select cast('123' As Int) + 123;

문자열 123을(' <- 문자로 둘러 싸서 문자열로 표현하였습니다.) Int형으로 변환하고 123값을 더해 줍니다.


물론 위와 같은 상황에서는 굳이 cast함수를 쓰지 않아도 자동으로 형변환이 가능합니다.

Select '123' + 123;

그러나 되도록이면 Cast함수를 사용하여 명시적인 형변환을 하십시오. 가독성은 물론이거니와 자동형변환이 되지 않는 경우에는 오류가 발생할 여지가 많기 때문입니다. 또한 경우에 따라서는 원하지 않는 결과를 가져 오기도 합니다.

2. Convert

Convert또한 Cast와 마찬가지로 형변환을 해주는 함수 입니다. 차이점은 아래 구문형식처럼 형변환에 대한 형태(Style)를 지정할 수 있다는 것입니다.

Convert(변환형, 데이터, 형태)

또한 Convert는 날짜형을 변환하는데 유용하게 사용될 수 있습니다. 이때 날짜를 표현하는데는 여러가지 형식이 있을 수 있는데 이 형식을 Convert에서 지정하여 원하는 형식을 얻을 수 있습니다.

Select convert(Char(08), GetDate(), 112);
Select convert(Char(10), GetDate(), 120);


기타 Convert를 통한 날짜형식의 변환은 다음글을 참고해 주시기 바랍니다.

[Develop/SQL Server] - [SQL] 시간관련 형식 변환

비슷한 함수로 Try_Convert함수도 존재합니다. Convert와 같지만 변환에 실패하는 경우 NULL을 반환합니다.

3. Parse

특정 데이터를 지정한 형식으로 읽어들이는 함수입니다. 특히 일반문자열에서 날짜형식으로 변환하고자 하는 경우 유용하게 사용될 수 있습니다.

Select Parse('2016.12.31' As Date);

Try_Parse함수는 Parse와 같지만 변환에 실패하면 NULL을 반환합니다.


태그