본문 바로가기

Learning/SQL

날짜형 함수

<날짜형 함수>

 

  • SYSDATE: 현재 날짜와 시간

1
2
SELECT SYSDATE
FROM DUAL;
cs

 

 

 

    • 날짜+숫자: 날짜

1
2
SELECT SYSDATE, SYSDATE+3, SYSDATE-3
FROM DUAL;
cs

 

 

 

 

 

    • 날짜-날짜: 총 일수

1
2
3
SELECT employee_id, SYSDATE, hire_date,
SYSDATE - hire_date, ROUND (SYSDATE-hire_date)
FROM employees;
cs

 

 

 

 

 

    • 시간 계산

 

1
2
SELECT sysdate + 5/24 --시간 1(하루) 24시간 중 5시간
FROM DUAL;
cs

 

 

 

 

 

 

 

    • month_between: 월을 계산

 

1
2
3
4
SELECT employee_id, first_name,
    ROUND(MONTHS_BETWEEN(sysdate,hire_date)),
    (sysdate-hire_date)/30
FROM employees;
cs

 

 

 

 

 

 

    • add_months: 달을 더함

 

1
2
3
SELECT employee_id, first_name, hire_date,
ADD_MONTHS(hire_date,4--4달 더하기
FROM employees;
cs

 

 

 

 

 

    • next day(날짜, 다음번 나올 요일)

 

1
2
SELECT sysdate, next_day(sysdate, '월요일')
FROM DUAL;  
cs

 

 

 

 

 

 

1
2
SELECT sysdate, next_day(sysdate, '화요일')
FROM DUAL;  
cs

 

 

 

 

 

    • LAST_DAY (그 월의 마지막 날)

 

1
2
SELECT LAST_DAY(SYSDATE)
FROM DUAL;
cs

 

 

 

 

 

    • 날짜의 반올림

 

1
2
3
4
5
SELECT employee_id, hire_date,
ROUND(hire_date, 'MONTH') 월, --날에서 반올림 1일
ROUND(hire_date, 'YEAR') 년 --월에서 반올림 1월 1일
FROM employees
WHERE MONTHS_BETWEEN (sysdate, hire_date) < 150;
cs

 

 

 

 

 

<날짜형함수 예제>

 

  • employees 테이블에서 department_id가 100인 직원에 대해 오늘 날짜, hire_date, 오늘 날짜와 hire_date사이의 개월 수를 출력

 

1
2
3
SELECT sysdate, hire_date, MONTHS_BETWEEN(SYSDATE,hire_date)
FROM employees
WHERE department_id = 100;
cs

 

 

 

  • employees 테이블에서 employee_id가 100과 106사이인 직원의 hire_date에 3개월을 더한 값, hire_date에 3개월을 뺀 값을 출력

 

1
2
3
4
SELECT hire_date, ADD_MONTHS(hire_date,3"더하기_3개월",
ADD_MONTHS(hire_date,-3"빼기_3개월"
FROM employees
WHERE employee_id BETWEEN 100 AND 106;
cs

 

 

 

 

'Learning > SQL' 카테고리의 다른 글

NULL 관련 함수  (0) 2020.06.16
변환형 함수  (0) 2020.06.16
숫자형 함수  (0) 2020.06.15
문자형 함수  (0) 2020.06.15
IS NULL 연산자, ORDER BY  (0) 2020.06.15