단일행 함수 - 숫자함수 SQL
-숫자를 소수 n자리에서 절삭한다. 생략하면 기본값은 0.
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
단일행 함수 – 날짜 함수 SQL
: 데이터베이스 서버에 설정되어 있는 날짜를 리턴.
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
-날짜와 날짜 사이의 월수를 계산한다.
-결과는 음수 또는 양수가 될 수 있다.
-결과의 비정수 부분은 월의 부분을 나타낸다
문제) 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;
select empno, ename, hiredate,
round(hiredate,'MONTH'),
round(hiredate,'YEAR')
from emp
where empno =7839;