변환함수
데이터 유형 변환에는 암시적 데이터 유형변환과 명시적 데이터 유형변환이 있다.
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 |