본문 바로가기
DB

[DB] Oracle 날짜형, 변환형, NULL 함수

by 유혁. 2021. 9. 6.

1. 날짜형 함수

 

SYSDATE : 현재날짜와 시각을 출력

ex) SELECT SYSDATE FROM DUAL;

SYSDATE

 

 

EXTRACT : 날짜 데이터에서 년월일 데이터를 출력

ex)

SELECT 
 EXTRACT(YEAR FROM SYSDATE) AS YEAR,
 EXTRACT(MONTH FROM SYSDATE) AS MONTH,
 EXTRACT(DAY FROM SYSDATE) AS DAY
FROM DUAL;

EXTRACT

 

 

2. 변환형 함수

 

TO_NUMBER : 문자열을 숫자로 변환

ex) SELECT TO_NUMBER('1234') FROM DUAL;

TO_NUMBER

 

 

 

TO_CHAR : 숫자 날짜를 주어진 FORMAT에 맞춰 문자열로 변환

ex) SELECT TO_CHAR(1234) FROM DUAL;

TO_CHAR

 

ex) SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;

TO_CHAR

 

 

 

TO_DATE : 문자열을 주어진 FORMAT에 맞춰 날짜타입으로 변환

ex) SELECT TO_DATE('2021-09-06 01:23:45', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

TO_DATE

 

 

 

3. NULL 함수

 

NVL(표현식1, 표현식2) : 표현식1의 결과 값이 NULL인경우 표현식2 출력

ex) 

WITH EMP AS 
(
 SELECT 
  '유혁' AS NAME,
  '123456' AS EMP_NO,
  NULL AS CONTEXT
 FROM DUAL
)
SELECT EMP.*, NVL(CONTEXT, '공백') FROM EMP;

NVL

 

 

 

NVL2(표현식, 표현식1, 표현식2) : 표현식 값이 NULL이 아닐경우 표현식1 반환, NULL일 경우 표현식2 반환

ex) 

WITH EMP AS 
(
 SELECT 
  '유혁' AS NAME,
  '123456' AS EMP_NO,
  NULL AS CONTEXT
 FROM DUAL
)
SELECT EMP.*, NVL2(EMP_NO,'표현식1', '표현식2') ,NVL2(CONTEXT,'표현식1','표현식2') FROM EMP;

NVL2

 

 

 

NULLIF(표현식1, 표현식2) : 표현식1과 표현식2 값이 동일하면 NULL 반환, 그렇지 않으면 표현식1 반환

ex) 

WITH EMP AS 
(
 SELECT 
  '유혁' AS NAME,
  '123456' AS EMP_NO,
  NULL AS CONTEXT
 FROM DUAL
)
SELECT EMP.*, NULLIF(EMP_NO,'123456'), NULLIF(EMP_NO,'123457') FROM EMP;

NULLIF

 

 

 

COALESCE(표현식1, 표현식2, 표현식3... ) : 표현식1이 NULL이 아니면 표현식1값을 반환,

그렇지 않으면 COALESCE(표현식2, 표현식3..) 결과값 반환

ex) 

WITH EMP AS 
(
 SELECT 
  '유혁' AS NAME,
  '123456' AS EMP_NO,
  NULL AS CONTEXT,
  NULL AS TMP
 FROM DUAL
)
SELECT EMP.*, COALESCE(CONTEXT, TMP, EMP_NO) FROM EMP;

COALESCE

 

 

 

'DB' 카테고리의 다른 글

[DB] Oracle TABLESPACE 란  (0) 2021.09.13
[DB] Oracle 자주쓰는 숫자형 함수  (0) 2021.09.02
[DB] Oracle 자주쓰는 문자열 함수  (0) 2021.08.30
[DB] MySQL 계정관리  (0) 2021.08.24
[DB] DDL - SQL문  (0) 2021.08.23