작성
·
25
답변 2
2
안녕하세요.
문자형을 숫자형으로 바꾸는 경우는 꽤 빈번하게 일어나는 편입니다.
원칙적으로는 숫자형으로 바꿔야 숫자 함수에 넣거나 숫자 연산을 하기 위해선 형 변환을 해야 하기 때문이죠. 그렇지 않아도 암시적 형 변환(implicit type casting)으로 연산을 해주긴 합니다.
예를 들면 아래와 같은 것들도 연산이 잘 됩니다.
SELECT '-123' + 50 FROM DUAL;-- 결과: -73
하지만 예상치 못한 결과나 오류, 성능 저하를 유발할 수 있어서 조심해야 합니다.
날짜를 문자형으로 바꾸는 경우도 자주 사용하는 편입니다.
날짜를 포매팅한 문자열로 바꿔서 필요한 부분만큼 잘라서 사용하는 경우(GROUP BY 해서 통계 낼 때 자주 사용했습니다.), 문자열로 비교하거나, 원하는 형태로 날짜를 출력하고 싶은 경우(3월 28일 (목))가 있을거에요.
CAST
함수는 형 변환을 하는 SQL 표준 함수입니다. SQL-92 이후에 표준화 됐어요. 오라클도 1999년에 출시한 8i부터 CAST
함수를 공식적으로 지원하기 시작했습니다.
하지만 오라클 사용자들은 CAST
함수보다 TO
함수를 더 선호하긴 합니다. 이건 아마 관성 때문인 것 같아요. 쓰던거 계속 쓰고 싶은거죠. CAST
보다 TO
함수가 간결하기도 하고요. 게다가 경우 날짜 변환의 경우 TO_DATE
함수는 한번에 형식까지 지정할 수 있는 반면 CAST
함수는 포맷 지정이 안된다는 약점이 있습니다.
궁금증이 해결 안되셨거나 또 궁금한게 있으시면 질문해주세요!
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 장지영님.
데이터베이스에서 데이터 형 변환은 매우 중요한 역할을 합니다. 주로 사용되는 이유는 다음과 같습니다:
호환성: 서로 다른 데이터 타입을 갖는 데이터를 비교하거나 연산하기 위해 같은 타입으로 변환해야 합니다. 예를 들어, 문자열을 숫자로 변환하여 숫자 연산을 수행할 수 있습니다.
형식 일치: 데이터 조회 시 사용자의 요구 사항에 맞게 데이터 형식을 변경해야 할 경우가 있습니다. 예를 들면, 날짜 데이터를 특정 포맷의 문자열로 변환해 표시할 때 사용합니다.
데이터 정규화: 잘못된 타입의 데이터를 올바른 타입으로 변경하여 데이터 정합성을 유지합니다. 예를 들어, 숫자로 저장된 날짜 데이터를 실제 날짜 타입으로 변환할 수 있습니다.
Oracle에서 CAST
함수를 사용하여 데이터 타입을 명시적으로 변경할 수 있습니다. 예를 들면 CAST(20 AS VARCHAR2(10))
와 같이 사용할 수 있지만, 실제 오라클 개발 현장에서는 TO_CHAR
, TO_NUMBER
, TO_DATE
와 같은 함수를 더 자주 사용합니다. 이러한 함수들은 각 데이터 타입에 대해 최적화된 변환을 제공하고, 특정 형식 옵션을 추가로 지원하기 때문입니다.
관련 주제를 더 알아보고 싶으시다면 아래의 질문을 참고하실 수 있습니다:
- CAST 함수와 데이터 형 변환에 대한 이해: 데이터베이스에서의 데이터 형 변환과 관련하여 다른 수강생의 질문과 답변을 통해 추가적인 이해를 도울 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다 :)