Programming/SQL

[Oracle] SELECT문 함수(7) - SYSDATE/MONTHS BETWEEN(DATE1,DATE2)/ADD_MONTHS(DATE,NUM)/LAST_DAY/EXTRACT /NEXT_DAY

Jayna. 2024. 2. 6. 14:34
728x90

 

 

[Oracle] SELECT문 함수(6) - 숫자관련 함수 ABS/MOD/ROUND/CEIL/FLOOR/TRUNC

[Oracle] SELECT문 함수(5) - 문자열 합치기(CONCAT) / 문자 바꾸기 (REPLACE) / 제거(REGEXP_REPLACE) [Oracle] SELECT문 함수(4) - 문자열 전부 다 소문자, 대문자, 앞글자만 대문자로 변경해서 조회 / LOWER [Oracle] SELECT

jaynarecord.tistory.com

SYSDATE 

현재 시스템 날짜 반환

 

MONTHS BETWEEN(DATE1, DATE2)

두 날짜 사이의 개월수 반환

 

ADD_MONTHS(DATE,NUM)

특정 날짜에 해당 숫자만큼의 개월수를 더한 날짜를 반환

SELECT ADD_MONTHS(SYSDATE, 5)
  FROM DUAL;
  
-- 전체 사원들의 직원명, 입사일, 입사 후 6개월이 흘렀을 때의 날짜 조회
SELECT EMP_NAME, HIRE_DATE, ADD_MONTHS(HIRE_DATE, 6)
  FROM EMPLOYEE;
728x90

NEXT_DAY

특정날짜에서 가장 가까운 해당 요일을 찾아서 날짜를 반환

SELECT NEXT_DAY(SYSDATE,'토요일')
  FROM DUAL;
  
SELECT NEXT_DAY(SYSDATE,'토')
  FROM DUAL;
 
-- 1:일요일, 2:월요일, 3:화요일, ..., 6:금요일, 7:토요일
SELECT NEXT_DAY(SYSDATE, 7)
  FROM DUAL;
  
SELECT NEXT_DAY(SYSDATE, 'SUNDAY')
  FROM DUAL;
-- 에러발생! => 현재 언어가 KOREAN이기 때문에

-- 언어변경 후
ALTER SESSION SET NLS_LANGUAGE = AMERICAN;
SELECT NEXT_DAY(SYSDATE, 'SUNDAY')
  FROM DUAL;

 

LAST_DAY

해당 특정 날짜 달의 마지막 날짜를 구해서 반환

EXTRACT

년도, 월, 일, 정보를 추출해서 반환

 - EXTRACT(YEAR FROM DATE) : 특정날짜로부터 년도만 추출

 - EXTRACT(MONTH FROM DATE) : 특정날짜로부터 월만 추출

 - EXTRACT(DAY FROM DATE) : 특정날짜로부터 일만 추출

-- 사원명, 입사년도, 입사월, 입사일 조회
SELECT EMP_NAME
     , EXTRACT(YEAR FROM HIRE_DATE) "입사년도"
 	 , EXTRACT(MONTH FROM HIRE_DATE) "입사월" 
	 , EXTRACT(DAY FROM HIRE_DATE) "입사일"
  FROM EMPLOYEE
 ORDER BY "입사년도","입사월";
-- 실행순서: FROM > SELECT > EXTRACT > ORDER BY

 

 

 

 

[Oracle] SELECT문 함수(8) 형변환 함수 TO_CHAR(NUM/DATE) / TO_DATE(NUM,CHAR)/ TO_NUMBER(CHAR)

[Oracle] SELECT문 함수(7) - SYSDATE/MONTHS BETWEEN(DATE1,DATE2)/ADD_MONTHS(DATE,NUM)/LAST_DAY/EXTRACT /NEXT_DAY [Oracle] SELECT문 함수(5) - 문자열 합치기(CONCAT) / 문자 바꾸기 (REPLACE) / 제거(REGEXP_REPLACE) [Oracle] SELECT문 함수(4)

jaynarecord.tistory.com

 

728x90