IT_developers

SQL - scott(개념 + 실습)7 본문

SQL

SQL - scott(개념 + 실습)7

developers developing 2022. 8. 9. 12:00

숫자함수 : 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
Comments