숫자함수, 날짜함수 SQL

Aiden·2020년 7월 16일
0

애이콘 아카데미

목록 보기
2/3

단일행 함수 - 숫자함수 SQL

 TRUNC 함수

-숫자를 소수 n자리에서 절삭한다. 생략하면 기본값은 0.

  • n이 양수이면 소수 자리를, 음수이면 정수 자리를 절삭.

select trunc(456.789,2) from dual;--절삭

select trunc(4567.678),trunc(4567.678,0),trunc(4567.678,2) ,trunc(4567.678,-2)
from dual;

단일행 함수 – 날짜함수 SQL

  • 오라클은 세기, 년, 월, 일, 시, 분, 초를 내부 숫자(7 Byte) 형식으로 날짜
    를 저장 한다.
    -Default Date Type은 RR-MM-DD(변경 가능) 이다.
     RR 날짜 형식
    : 년도를 2자리로 입력 시 적절하게 1900년대 또는 2000년대의 4자리 연도로 변환.
    select sysdate from dual;--연월

단일행 함수 – 날짜 함수 SQL

 SYSDATE 함수

: 데이터베이스 서버에 설정되어 있는 날짜를 리턴.

select sysdate "오늘", sysdate +1 "내일", sysdate -1 "어제" from dual;
select ename, hiredate, trunc((sysdate-hiredate)/365) "년"
from emp order by 3 desc;

문제) EMP 테이블에서 현재까지 근무일 수가 몇주 몇일 인가를 출력. 단 근무
일수가 많은 사람 순으로 출력 ?

select ename, hiredate, sysdate, sysdate - hiredate "Total Days",
trunc((sysdate - hiredate) / 7,0) Weeks,
round(mod((sysdate - hiredate), 7), 0) DAYS
from emp
order by sysdate - hiredate desc;

단일행 함수 - 날짜함수 SQL

 날짜 함수

  • 날짜 함수는 오라클 날짜에 대해 연산을 한다. MONTHS_BETWEEN을 제외
    하고는 DATE형을 RETURN 한다.

MONTHS_BETWEEN 함수

-날짜와 날짜 사이의 월수를 계산한다.
-결과는 음수 또는 양수가 될 수 있다.
-결과의 비정수 부분은 월의 부분을 나타낸다

문제) EMP 테이블에서 10번 부서 중 현재까지의 근무 월수를 계산하여 출력?
select ename, hiredate, sysdate, months_between(sysdate,hiredate) m_between,
trunc(MONTHS_BETWEEN(SYSDATE,hiredate),0) t_between
from emp
where deptno =10
order by 4 desc;

 MONTHS_BETWEEN 함수
-날짜와 날짜 사이의 월수를 계산한다.
-결과는 음수 또는 양수가 될 수 있다.
-결과의 비정수 부분은 월의 부분을 나타낸다.

문제) EMP 테이블에서 10번 부서 중 입사 일자로부터 5개월이 지난 후 날짜
를 계산하여 출력 ?
select ename, hiredate, add_months(hiredate,5) a_month
from emp
where deptno = 10
order by hiredate desc;

 ROUND 함수

  • 날짜를 가장 가까운 년도 또는 월로 반올림할 수 있다.

select empno, ename, hiredate,
round(hiredate,'MONTH'),
round(hiredate,'YEAR')
from emp
where empno =7839;

 TRUNC 함수

  • 날짜를 가장 가까운 년도 또는 월로 절삭할 수 있다
    select empno, ename, hiredate,
    trunc(hiredate, 'MONTH'),
    trunc(hiredate, 'YEAR')
    from emp
    where empno =7839;

0개의 댓글