개발/K-DigitalTraining 수강중

Oracle DB ( 오라클 함수 - 숫자 , 날짜 )

배타브 2023. 3. 21. 11:02
728x90
반응형

숫자 함수

--숫자 함수
--1) round , trunc , ceil , floor , mod

--ROUND
select round(1234.5678,2) as round2,  -- 소수점 이하 두자리까지.
            round(1234.5678,-1) as round_minus1 -- 정수 마지막 자리 반올림
from dual;

--TRUNC
select trunc(1234.5678,2) as trunc2,  -- 소수점 이하 두자리까지 버림.
            trunc(1234.5678,-1) as trunc_minus1 -- 정수 마지막 자리 버림
from dual;

--CEIL(숫자) , FLOOR(숫자) : 입력된 숫자와 가까운 큰 정수 , 작은 정수
select ceil(12.34) , floor(12.34),ceil(-12.34) , floor(-12.34)
from dual;

-- MOD ( 나눈 나머지값)
select mod(15,6) , mod(10,2)
from dual;

날짜 함수

--날짜 함수
--날짜 데이터는 + 숫자 : 날짜 데이터보다 숫자만큼 일수 이후의 날짜
--날짜 데이터 - 날짜데이터 : 두 날짜 데이터 간의 일수 차이
--날짜 데이터 + 날짜데이터 : 연산 불가

--sysdate 함수 (시스템 날짜(오라클 서버가 설치되어있는 os의 현재 날짜 , 시간))
select sysdate  +30   , sysdate -1 , sysdate +1
from dual;

--add_months( 날짜 , 더할 개월수) : 개월 이후 날짜 구하기
select sysdate, add_months(sysdate,6)
from dual;

-- 입사 50주년 되는 날짜 구하기
-- empno, ename, hiredate , 입사50주년 날짜
select  empno , ename, hiredate , add_months(hiredate,600) 
from emp;

-- months_between(첫번째 날짜, 두번째 날짜) : 두 날짜 데이터 간의 날짜 차이를 개월수로 계산
-- 입사 45년 미만인 사원 데이터 조회
select  empno , ename, hiredate 
from emp
where months_between(sysdate , hiredate) < 540 ;

--현재 날짜와 6개월 후 날짜가 출력되도록
select  sysdate  , add_months(sysdate , 6)  
from dual;

--next_day(날짜 , 요일) : 특정 날짜를 기준으로 돌아오는 요일의 날짜 출력
--last_day(날짜) : 특정 날짜가 속한 달의 마지막 날짜를 출력

select  sysdate , next_day(sysdate, '금요일'), last_day(sysdate)
from dual;

select sysdate,round(sysdate, 'CC') as format_cc,  
round(sysdate,'YYY') as format_yyy,                           
round(sysdate,'DDD') as format_ddd,
round(sysdate,'HH') as format_hh
from dual;

 

728x90
반응형