| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
- 수업기록
 - Python
 - 파이썬차트
 - 파이썬
 - SQLSCOTT
 - 주피터노트북판다스
 - 파이썬수업
 - python데이터분석
 - sql따라하기
 - 팀플기록
 - 판다스그래프
 - SQL수업
 - 파이썬데이터분석
 - 주피터노트북데이터분석
 - 맷플롯립
 - SQL
 - 파이썬크롤링
 - sql연습
 - 주피터노트북맷플롯립
 - python알고리즘
 - 판다스데이터분석
 - 파이썬데이터분석주피터노트북
 - 파이썬알고리즘
 - 주피터노트북그래프
 - python수업
 - 주피터노트북
 - 데이터분석시각화
 - 파이썬시각화
 - sql연습하기
 - matplotlib
 
- Today
 
- Total
 
IT_developers
SQL - scott(개념 + 실습)7 본문
숫자함수 : ROUND(), TRUNC(), CEIL(), FLOOR(), MOD()
날짜함수 : SYSDATE, CURRENT_DATE, CURRENT_TIMESTAMP
1) round() : 반올림
SELECT 
    round(1234.5678)      AS round, 
    round(1234.5678, 0)   AS round1, 
    round(1234.5678, 1)   AS round2, 
    round(1234.5678, 2)   AS round3, 
    round(1234.5678, - 1) AS round4, 
    round(1234.5678, - 2) AS round5 
FROM 
    dual;    

자리를 지정하지 않으면 기본 값으로 출력. 기본값은 0
2) trunc() : 버림
SELECT 
    trunc(1234.5678)      AS trunc, 
    trunc(1234.5678, 0)   AS trunc1, 
    trunc(1234.5678, 1)   AS trunc2, 
    trunc(1234.5678, 2)   AS trunc3, 
    trunc(1234.5678, - 1) AS trunc4, 
    trunc(1234.5678, - 2) AS trunc5 
FROM 
    dual;

3) CEIL(), FLOOR()
- ceil() : 지정된 숫자보다 큰 정수중에서 가장 작은 정수
 - floor() : 지정된 숫자보다 작은 정수 중에서 가장 큰 정수
 
SELECT 
    ceil(3.14), 
    floor(3.14), 
    ceil(- 3.14), 
    floor(- 3.14) 
FROM 
    dual;

4) mod() : 나머지
SELECT 
    mod(15, 6), 
    mod(10, 2), 
    mod(11, 2) 
FROM 
    dual;

자바에서 %와 같음
5) 날짜 함수 : 연산이 가능함.
- sysdate : 오늘 날짜. 오라클 서버가 돌아 가고 있는 시스템 시간을 가져옴.현재 시스템 시간.
 - current_date : 현재 날짜.
 - current_timestamp : 날짜 + 시, 분, 초 지역
 
SELECT 
    sysdate, 
    current_date, 
    current_timestamp 
FROM 
    dual;

6) 오늘, 어제, 내일 날짜
SELECT 
    sysdate     AS now, 
    sysdate - 1 AS yesterday, 
    sysdate + 1 AS tomorrow 
FROM 
    dual;

7) add_months() : 몇 개월 이후 날짜 구하기
SELECT 
    sysdate, 
    add_months(sysdate, 3) 
FROM 
    dual;

실습) 입사 20주년이 되는 사원들 조회
SELECT 
    empno, 
    ename, 
    hiredate, 
    add_months(hiredate, 240) 
FROM 
    emp;

20주년 == 240 개월
실습) 현재 날짜를 기준으로 입사 45년 미만인 사원 조회
SELECT 
    * 
FROM 
    emp 
WHERE 
    add_months(hiredate, 540) > sysdate;

8) months_between(날짜1,날짜2) : 두 날짜 데이터 간의 날짜 차이를 개월 수로 출력
SELECT 
    empno, 
    ename, 
    hiredate, 
    sysdate, 
    months_between(hiredate, sysdate)        AS months1, 
    months_between(sysdate, hiredate)        AS months2, 
    trunc(months_between(sysdate, hiredate)) AS months3 
FROM 
    emp;

9) 요일 알아보기
- next_day() : 특정 날짜를 기준으로 돌아오는 요일의 날짜 출력
 - last_day() : 특정 날짜가 속한 달의 마지막 날짜 출력
 
SELECT 
    sysdate, 
    next_day(sysdate, '월요일'), 
    last_day(sysdate) 
FROM 
    dual;

'SQL' 카테고리의 다른 글
| SQL - scott(개념 + 실습)9 (0) | 2022.08.11 | 
|---|---|
| SQL - scott(개념 + 실습)8 (0) | 2022.08.10 | 
| SQL - scott(개념 + 실습)6 (0) | 2022.08.08 | 
| SQL- scott(개념 + 실습)5 (0) | 2022.08.07 | 
| SQL - scott (개념 + 실습)4 (0) | 2022.08.06 |