Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

꺄르륵

[Oracle SQL Developer] 기초 VII - 날짜 함수 본문

프로그래밍/DB

[Oracle SQL Developer] 기초 VII - 날짜 함수

Teddy. 2019. 10. 10. 17:27

1. 날짜 함수


 1.1. SYSDATE, SYSTIMESTAMP
    1.1.1. 시스템에서 제공하는 현재의 날짜 및 시간
    
    예)
    SELECT SYSDATE FROM DUAL;
    -- 현재의 YYYY-MM-DD의 값이 반환된다.
  
  
  1.2. ADD_MONTHS(d, n)
    1.2.1. 날짜자료 d에 n개월을 더한 날짜를 반환한다.
    
    SELECT ADD_MONTHS(SYSDATE, 10) FROM DUAL;
    -- 현재 날짜의 해당하는 달 + 10월을 더한 날짜를 반환한다.
  
  
  1.3. NEXT_DAY(d, c)
    1.3.1. d에 해당하는 날짜 이후에 가장 먼저 만나는 c 요일의 날짜를 반환한다.
      - c는 요일을 기술한다. EX) '월요일(1)' '화요일(2)' ...
    
    예) 
    SELECT NEXT_DAY(SYSDATE, '월') FROM DUAL;
    
    예) 사원테이블에서 사원들의 입사일 이후 일요일의 날짜를 구하시오.
    
    SELECT EMP_NAME 사원명,
           HIRE_DATE 입사일,
           NEXT_DAY(HIRE_DATE, '일') "첫 휴일"
      FROM EMPLOYEES;
    
  
  
  1.4. MONTHS_BETWEEN(d1, d2)
    1.4.1. 두 날짜 자료 d1과 d2 사이의 달 수를 반환한다.
    
    예)
    SELECT MONTHS_BETWEEN(SYSDATE, '2019-12-01') FROM DUAL;
   
    
  1.5. EXTRACT(exp FROM d1)
    1.5.1. exp(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND) 추출하고자하는 데이터 단위, d1(날짜형 자료)
      : d1으로부터 exp를 추출하여 활용한다.
      
    예) 회원테이블의 주민번호 앞자리를 이용하여 회원들의 생일 중 월을 조회하시오.
        Alias는 회원번호, 회원명, 주민번호, 태어난월
    
    SELECT MEM_ID 회원번호, 
           MEM_NAME 회원명, 
           MEM_REGNO1 || '-' || MEM_REGNO2 주민번호, 
           EXTRACT(YEAR FROM TO_DATE(MEM_REGNO1,'YYMMDD')) - 100 태어난년도,
           EXTRACT(MONTH FROM TO_DATE(MEM_REGNO1,'YYMMDD')) 태어난월,
           EXTRACT(DAY FROM TO_DATE(MEM_REGNO1,'YYMMDD')) 태어난일
      FROM MEMBER;