오라클 변환 함수

DB

2020. 11. 17.

--자동형변환 : 문자와 숫자끼리 가능
SELECT 1+'2' -- 3
    ,1||'2'  -- 3
    ,'20/04/27' + 1; -- 얘는 안됨.
FROM DUAL; --4.

--강제형변환
--날짜 -> 문자 : TO_CHAR
SELECT SYSDATE, TO_CHAR(SYSDATE, 'YY/MM/DD HH:MM:SS DAY')
FROM DUAL;
--7월 입사자들만 출력하시오
SELECT *
FROM EMPLOYEES
--WHERE TO_CHAR(HIRE_DATE, 'MM') = '07';
WHERE SUBSTR(TO_CHAR(HIRE_DATE), 4,2) = '07';
--하반기 입사자들만 출력하시오
SELECT *
FROM EMPLOYEES
WHERE TO_CHAR(HIRE_DATE,'MM') >= '07';
--TO_CHAR(1234, '999999') -> 1234
--TO_CHAR(12345, '9999') -> # (작은 패턴을 지정하면 #으로 값이 깨져나온다)
--TO_CHAR(1234, '099999') ->001234 (앞에 0을 붙이면 패턴의 자리수를 무조건 유지)
--TO_CHAR(1234, 'L99999') -> \1234 (L은 부동 로컬 통화 기호)
--TO_CHAR(1234, '999,999') -> 1,234 (3자리마다 콤마 찍힘)

--숫자 -> 문자 : TO_CHAR
SELECT TO_CHAR(1234.5, '99,999') --> 1,235
    ,TO_CHAR(1234.5, '99,999.000') --> 1,234.500
    ,TO_CHAR(1234.5, 'L99,999.000') --> \1,234,500
FROM DUAL;

--문자 -> 날짜 : TO_DATE
SELECT TO_DATE('20/01/03') +1
    ,TO_DATE('2020/01/03') +1
    ,TO_DATE('20200103') +1
    ,TO_DATE('01032020', 'MMDDYYYY') +1
FROM DUAL;

--문자 -> 숫자 : TO_NUMBER
-- 슬래시를 포함한 문자는 숫자로 바꿀 수 없음
SELECT TO_NUMBER('1,234', '9,999')
FROM DUAL;

--숫자 200601을 날짜형으로 변환 후 다음 일자의 요일을 출력하시오
SELECT TO_CHAR(TO_DATE(TO_CHAR(200601), 'YYMMDD')+1, 'DAY')
    ,TO_CHAR(TO_DATE(TO_CHAR(200601), 'YYMMDD')-1, 'DAY')
FROM DUAL;

SELECT TO_CHAR(TO_DATE('940406', 'RRMMDD'), 'DAY')
FROM DUAL;

SELECT TRUNC(SYSDATE - TO_DATE('20/04/21'),0)
FROM DUAL;

'DB' 카테고리의 다른 글

오라클 단일 함수  (0) 2020.11.17
오라클 일반 함수  (0) 2020.11.17
그룹 함수  (0) 2020.11.17
문자 함수  (0) 2020.11.17
자료형  (0) 2020.11.17