본문 바로가기
Database

내장 함수(BUILT-IN-FUNCTION) - 날짜형/변환형

by oncerun 2021. 4. 27.
반응형

날짜형 함수

 

- 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) - 문자열을 포맷 형식으로 날짜로 변경한다.

반응형

댓글