DATABASE(oracleDB 11g)/SQL

[SQL]변환함수

SEUNGSAMI 2019. 1. 25. 16:31

변환함수


데이터 유형 변환에는 암시적 데이터 유형변환과 명시적 데이터 유형변환이 있다.

Oracle 서버는 표현식에서

VARCHAR2 or CHAR을 NUMBER로 또는 DATE로 자동으로 변환할 수 있다.

그리고 표현식 평가 시 NUMBER or DATE를 VARCHAR2로 또는 CHAR로 자동으로 변환할 수 있다.


즉 다음 예시를 참고하면

1
2
3
4
5
select upper(1)
from dual;
 
select upper(sysdate)
from dual;
cs

이와 같은 경우 1과 sysdate는 CHAR로 변환된다.



 다음은 날짜에 TO_CHAR함수를 쓰는 유효한 날짜 형식으로의 변환의 예시이다.

1
2
select to_char(sysdate, 'YYYY/MM/DD')
from dual;
cs


1
2
select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS DAY')
from dual;
cs


1
2
SELECT LAST_NAME, TO_CHAR(HIRE_DATE, 'fmDD MONTH YYYY') AS HIREDATE
FROM EMPLOYEES;
cs

다음의 예시의 경우 MONTH는 기본적으로 8개의 칸을 가지고있으나 fm을 써 놓으면 공백을 모두 1칸으로 통일시킨다.


다음은 숫자에 TO_CHAR을 쓰는 예시이다.

1
2
select to_char(salary,'$99,999.99')
from employees;
cs



TO_NUMBER 및 TO_DATE 함수

TO_NUMBER(char[, 'format_model'])

TO_DATE(char[, 'format_model'])

의 형식으로 사용

다음 예시를 참고하자

1
2
select to_date('31-JAN-19 13:30:30','DD-MON-RR hh24:mi:ss')
from dual;
cs


1
2
3
4
5
6
select months_between('01/01/2019', hire_date)
from employees;
 
select sysdate - '01/01/2019' from dual; (X)
 
select sysdate - to_date('01/01/2019'from dual;
cs

주의할 것으로는 위의 예시에서 두번째 구문은 ''안의 내용을 문자로 인식하기 때문에 오류가 발생한다.


함수 중첩

F3(F2(F1(col,arg1),arg2),arg3)

F1 -> F2 -> F3 순으로 함수가 실행된다.


SQL을 배운지 얼마 되지 않아 잘못된 내용이 있을 수 있습니다. 틀린 내용이있다면, 댓글로 달아주세요.

'DATABASE(oracleDB 11g) > SQL' 카테고리의 다른 글

[SQL]width_bucket함수  (0) 2019.01.28
[SQL]일반 함수 기초  (0) 2019.01.25
[SQL]function 기초  (0) 2019.01.25
[SQL]DEFINE 및 VERIFY 명령  (0) 2019.01.24
[SQL]치환 변수와 바인드 변수  (0) 2019.01.24