본문 바로가기

나 취준생/SQL

SQL - 단일 변환 함수

320x100

문자형으로 데이터 유형 변환하기 ( TO_CHAR )


숫자형 -->> 문자형으로 변환,

날짜형 -->> 문자형으로 변환할 때 사용하는 함수


예제 : 오늘이 무슨 요일인지 출력

select sysdate

   from dual;


select to_char(sysdate, 'day')

   from dual;


                

* 날짜형식

년도 : RRRR, YYYY, RR, YY

월 : MM, MON

일 : DD

시간 : HH, HH24

분 : MI

초 : SS

요일 : day, dy, d


예제 : 11월에 입사한 사원들 출력하기

select ename, hiredate

   from emp

   where to_char(hiredate,'MM')='11';


문자열을 날짜로 형 변환하는 함수 (to_date)


예제 :

select to_date ('18700710', 'YYYYMMDDHH24MISS')

  from dual;


select ename, hiredate

   from emp

   where hiredate=to_date('81/11/17','RR/MM/DD');


--> 날짜형 데이터를 검색할 때는 반드시 to_date 함수를 사용할 것이 필수!

(확실한 데이터 검색을 위해)


숫자로 형변환하는 함수 (to_number)


select ename, sal

 from emp

 where sal='3000';


데이터 형식이 숫자인 sal에 문자열 '3000'으로 검색해도 검색이 될까?


친절한 오라클은 자동으로 int로 바꿔줘서 검색을 해준다.

그런데 이러한 게 데이터 양이 큰 경우에는 오히려 독이 될 수 있다.

SQL 실행이 느려지고, '자동'이기 때문에 나는 느려지는 원인을 찾기 힘듬.

현업에서는 차라리 오류가 나는게 낫다고 한다. (고치면 되니까)

그래서 문자열이 들어가게 되는 경우 꼭 to_number를 활용하자

select ename, sal

 from emp

 where sal=to_number('3000');


반응형

'나 취준생 > SQL' 카테고리의 다른 글

SQL - 복수행 함수  (0) 2020.11.04
SQL - nvl 함수 + SQL의 IF문 구현하기  (0) 2020.11.04
SQL - 단일 함수 2  (0) 2020.11.03
SQL - 단일 함수 1  (0) 2020.11.03
SQL - 논리 연산자  (0) 2020.11.03