날짜형 함수
- DATE 타입의 값을 연산하는 함수
SYSDATE - 현재 날짜와 시각을 출력한다.
EXTRACT( YEAR | MONTH | DAY | HOUR | MINUTE | SECOND FROM d) - 날짜 데이터에서 년/월/일/시/분/초를 출력할 수 있다.
SELECT EXTRACT(YEAR FROM SYSDATE)FROM DUAL;
SELECT EXTRACT(MONTH FROM SYSDATE)FROM DUAL;
SELECT EXTRACT(DAY FROM SYSDATE)FROM DUAL;
SELECT EXTRACT(HOUR FROM SYSTIMESTAMP)+9 FROM DUAL;
SELECT EXTRACT(MINUTE FROM SYSTIMESTAMP)FROM DUAL;
대신에 시/분/초를 출력하기 위해서는 TIMESTAMP형이 들어가야 한다. DATA타입에는 시분 초가 존재하지 않을 수 있기 때문이다. 또한 타임존 설정이 필요합니다. 한국은 +9 그리니치 천문대 기준
변환형이지만 날짜의 값의 리턴값이 숫자라는 걸 알기 위해 다음과 같은 함수를 사용할 수 있다.
TO_NUMBER(TO_CHAR(d, 'YYYY')) - d 날짜형에서 'YYYY'라는 포맷의 형태로 문자열 형태로 추출한 후 숫자형으로 변환한다.
SELECT TO_NUMBER(TO_CHAR(SYSDATE,'YY')) FROM DUAL;
DATE 변수가 데이터베이스에 어떻게 저장되는지 살펴보면 날짜를 저장할 때 내부적으로 세기(Centry), 년(Year), 월(Month), 일(Day), 시(Hours), 분(Minutes), 초(Seconds)와 같은 숫자 형식으로 변환하여 저장한다. 숫자기 때문에 산술 연산으로 계산이 가능합니다.
변환형 함수
- 특정 데이터 타입을 다양한 형식으로 출력하고 싶은 경우에 사용되는 함수 입니다.
두 가지가 존재하는데
1) 명시적(Explicit) 데이터 유형 변환 : 데이터 변환형 함수로 데이터의 유형을 명시하는 경우
2) 암시적(Implicit) 데이터 유형 변환 : 데이터베이스가 자동으로 데이터 유형을 변환해주는 경우
암시적 변환 인경우 성능 저하가 발생할 수 있으며 가끔 데이터베이스가 암시적으로 변환을 해주지 않는 경우가 있어서 명시적으로 데이터 유형 변환 방법을 사용하는 것이 바람직하다.
TO_NUMBER(문자열) - 문자 -> 숫자
TO_CHAR(숫자, 날짜 / FORMAT) - 숫자, 날짜를 포맷 형태로 문자열로 변환
TO_DATE(문자열, FORMAT) - 문자열을 포맷 형식으로 날짜로 변경한다.
'Database' 카테고리의 다른 글
집계 함수 (Aggregate Function) (0) | 2021.04.27 |
---|---|
내장 함수(BUILT-IN-FUNCTION) - NULL 관련함수 (0) | 2021.04.27 |
내장 함수(BUILT-IN-FUNCTION) - 숫자형 (0) | 2021.04.27 |
내장 함수(BUILT-IN-FUNCTION) - 문자형 (0) | 2021.04.27 |
연산자 (0) | 2021.04.27 |
댓글