본문 바로가기

Database/Oracle

Oracle。형 변환 함수와 오라클 주요 함수 2

728x90
반응형

1. 형 변환 함수

 

날짜 출력 형식 숫자 출력 형식 숫자 출력 형식
종류 의미 종류 의미 구분 설명
 YYYY  년도 표현(4자리)  AM 또는 PM  오전(AM), 오후(PM) 시각 표시 0  자릿수를 나타내며 자릿수가 맞지 않을 경우 0으로 채움
 YY  년도 표현(2자리)  HH 또는 HH12  시간(1~12) 9  자릿수를 나타내며 자릿수가 맞지 않아도 채우지 않음
 MM  월을 숫자로 표현  HH24  24시간으로 표현(0~24) L  각 지역별 통화 기호를 앞에 표시
 MON  월을 알파벳으로 표현  MI  분 표현 .  소수점
 DAY  요일 표현  SS  초 표현 ,  천 단위 자리 구분
 DY  요일을 약어로 표현        

 

# TO_CHAR

날짜형 혹은 숫자형을 문자형(VARCHAR2)으로 변환

 

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD'), // 현재 날짜를 기본 형식과 다른 형태로 출력
TO_CHAR(SYSDATE, 'YYYY/MM/DD DAY'), // 현재 날짜를 출력하되 요일까지 함께 출력
TO_CHAR(SYSDATE, 'YYYY/MM/DD, AM HH:MI:SS'), // 현재 날짜와 시간 출력
TO_CHAR(1234000, 'L999,999,999'), // 통화 기호를 붙여 출력
TO_CHAR(123456, '0000000000'), // 빈 여백을 0으로 채움
TO_CHAR(123456, '999,999,999') // 천 단위 자리 구분
 FROM DUAL;

 

# TO_DATE

문자형을 날짜형으로 변환

 

SELECT hiredate=TO_DATE(20170101, 'YYYYMMDD'), // 2017년 1월 1일에 입사한 사원 검색
TRUNC(SYSDATE-TO_DATE('2017/01/01', 'YYYY/MM/DD')) // 현재 날짜에서 2017년 1월 1일을 뺀 결과 출력(며칠이 지났는지 출력)
 FROM DUAL;

 

# TO_NUMBER

문자형을 숫자형으로 변환

 

SELECT TO_NUMBER('20,000', '99,999')
- TO_NUMBER('10,000', '99,999') // 수치 형태의 문자 값의 차
 FROM DUAL;

 

2. 날짜 함수

 

구분 설명
 SYSDATE  시스템에 저장된 현재 날짜 반환
 MONTHS_BETWEEN  두 날짜 사이가 몇 개월인지 반환
 ADD_MONTHS  특정 날짜에 개월 수 더함
 NEXT_DAY  특정 날짜에서 최초로 도래하는 인자로 받은 요일의 날짜 반환
 LAST_DAY  해당 달의 마지막 날짜 반환
 ROUND  인자로 받은 날짜를 특정 기준으로 반올림
 TRUNC  인자로 받은 날짜를 특정 기준으로 버림

 

# SYSDATE 함수

 

SELECT to_char(SYSDATE-1, 'YYYY/MM/DD'), // 어제
to_char(SYSDATE, 'YYYY/MM/DD'), // 오늘
to_char(SYSDATE+1, 'YYYY/MM/DD') // 내일
 FROM DUAL;

 

# ROUND 함수

 

ROUND(date, format)

 

포맷 모델 단위
 CC, SCC  4자리 연도의 끝 두 글자를 기준으로 반올림
 SYYY, YYYY, YEAR, SYEAR, YYY, YY, Y  년(7월 1일부터 반올림)
 DDD, D, J  일을 기준으로 반올림
 HH, HH12, HH24  시를 기준으로 반올림
 Q  한 분기의 두 번째 달의 16일을 기준으로 반올림
 MONTH, MON, MM, RM  월(16일을 기준으로 반올림)
 DAY, DY, D  한 주가 시작되는 날짜를 기준으로 반올림
 MI  분을 기준으로 반올림

 

# TRUNC 함수

 

TRUNC(date, format)

 

SELECT to_char(TRUNC(hiredate, 'MONTH'), 'YYYY/MM/DD') // 특정 날짜(DATE)를 달(MONTH)을 기준으로 버리기
 FROM emp;

 

# MONTHS_BETWEEN 함수

 

MONTHS_BETWEEN(date1, date2)

 

SELECT TRUNC(MONTHS_BETWEEN(SYSDATE, hiredate)) // 근무달수(두 날짜 사이의 간격을 구함)
 FROM emp;

 

# ADD_MONTHS 함수

 

ADD_MONTHS(date, number)

 

SELECT to_char(ADD_MONTHS(hiredate, 6), 'YYYY/MM/DD') // 입사 6개월 후
 FROM emp;

 

# NEXT_DAY 함수

 

NEXT_DAY(date, 요일)

 

SELECT to_char(NEXT_DAY(hiredate), 'YYYY/MM/DD') // 마지막 날짜
 FROM emp;
728x90
반응형