- 함수
- NVL(exp1, exp2)
- exp1이 NULL이면 exp2 리턴, exp1이 NULL이 아니면 exp1 리턴
- exp1과 exp2는 반드시 같은 타입
- NVL2(exp1, exp2, exp3)
- exp1이 NULL이면 exp2 리턴, exp1이 NULL이 아니면 exp3 리턴
- exp2와 exp3는 반드시 같은 타입
- NULLIF(exp1, exp2)
- exp1과 exp2가 동일하면 널 값을 리턴, 아니면 exp1 리턴
- SYSDATE
- 시스템의 현재 날짜와 시간을 리턴
- CHECK 제약의 조건으로 사용할 수 없다
- SUBSTR(str, 위치, 문자수)
- str의 위치에서 문자수만큼 문자열 추출
- SQL> SELECT SUBSTR('PARKJUNHYUN', 2, 3) FROM DUAL;
ARK - TO_DATE(문자형 데이터, [날짜형 변환형식])
- 날짜형 데이터 리턴
- 기본 형식은 'YY/MM/DD'
- 날짜형 변환형식
- 형식요소의 구분은 -, /, ., ;, :, "text" 가능
- 날짜형 변환형식
구분
형식요소
내용
범위
날짜
YY, RR
연도(숫자 2자리 표기) 예: 11 YYYY, RRRR 연도(숫자 4자리 표기) 예: 2011 YEAR 연도(문자 표기) 예: TWENTY ELEVEN
MM 월(숫자) 1~12 MON 3문자 단축형 월 JAN~DEC 혹은 '월'
MONTH 월(문자) JANUARY~DECEMBER
DD 일(숫자) 1~31(달에 따라)
DAY 요일 일요일~토요일
D 그 주의 몇 번째 날 1~7 DDD 그 해의 몇 번째 날 1~366(해에 따라) 시간
HH, HH12 시각
1~12 HH24 시각 0~23 MI 분 0~59 SS 초 0~59 SSSS 자정이후 초 단위 시간
0~86399 AM, A.M., PM, P.M.
기타
CC 세기 예: 20 Q 4분기 1~4 W 그 달의 주 1~5 WW 그 해의 주 1~52 - http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#g195443
- YY/YYYY, RR/RRRR은 Y2K와 관련있는 연도의 형식요소로 아래와 같이 날짜형으로 변환할 문자형 데이터 범위에 따라 세기를 변환한다
문자형 데이터 범위
YY
RR
0~49
현재 세기
현재 세기
50~99
현재 세기
이전 세기
- 아래와 같이 문자형 데이터를 TO_DATE() 함수에 변환형식('YYMMDD', 'RRMMDD')을 적용하여 날짜형 데이터로 변환하고, 이 날짜형 데이터를 출력형식('YYYY-MM-DD', 'RRRR-MM-DD')를 적용하면 서로 결과가 다르게 나타나는 것을 알 수 있다.
문자형 데이터
변환형식
날짜형 데이터
출력형식
출력결과
'970505'
'YYMMDD'
97/05/05
'YYYY-MM-DD'
2097-05-05
'RRMMDD'
97/05/05
'RRRR-MM-DD'
1997-05-05
'110215'
'YYMMDD'
11/02/15
'YYYY-MM-DD'
2011-02-15
'RRMMDD'
11/02/15
'RRRR-MM-DD'
2011-02-15
- TO_CHAR(날짜형 데이터, [날짜형 변환형식])
- VARCHAR2 리턴
- 형식요소의 구분은 -, /, :, 공백 가능
- 날짜형 변환형식
- TO_DATE() 참조
- Format Model Modifiers
- FM(Fill Mode)
- 변환 결과 앞뒤로 0 또는 공백 제거
- FX(Format eXact)
- 입력되는 문자형 데이터와 변환형식이 정확히 일치하지 않으면 에러
- TO_CHAR(숫자형 데이터, [숫자형 변환형식])
- 숫자형 변환형식
형식요소
내용
예
9
자릿수 지정
'9999'
0
0으로 채움
'0999'
.
소숫점 추가
'999.99'
,
천단위마다 컴마(,) 추가
'9999,99'
$
화폐단위 표시
'$99,999.99'
L
국가별 화폐단위 표시
'L99,999.99'
EEEE
지수형태로 표시
'9.99EEEE'
S
부포표시
'S9999.99'
B
공백으로 채움
- TO_NUMBER(문자형 데이터, 숫자형 변환형식)
- 숫자형 데이터 리턴
- 숫자형 변환형식
- TO_CHAR() 참조