본문 바로가기
22.05.24~22.11.16/7月

07-01 <오라클> : 숫자 함수, 날짜 함수, 산수

by 10월의끝 2022. 7. 8.

<숫자함수>

 

1. 소수점 절삭, 반올림하기 

select trunc(234.567), round(234.567, 2)
from dual;

 

->
TRUNC(234.567) ROUND(234.567,2)
-------------- ----------------
           234           234.57
trunc 소수점 절삭
round에서 ,2는 소수점 둘째자리에서 반올림


2. 소수점 ~자리까지 0으로 표현하기, ~자리에서 반올림하기

select salary, trunc(salary, -3), round(salary, -3)
from employees

 

->
SALARY TRUNC(SALARY,-3) ROUND(SALARY,-3)
---------- ---------------- ----------------
      3800             3000             4000
      3600             3000             4000
trunc -3은 소수점 앞 세자리까지 절삭(모두 0으로 표현)
round -3은 소수점 앞 세자리에서 반올림

 


<날짜함수> 

1. 오늘 날짜 나오게 하기

select sysdate
from dual

 

-> 현재 날짜가 나옴 
-1 하면 하루 전 날짜
+1 하면 하루 후 날짜 


2. 입사일부터 현재까지 몇개월 근무했는지 조회하기

select MONTHS_BETWEEN(SYSDATE,hire_date)
from employees

 

-> 입사부터 현재까지 몇개월 다녔는지 알려줌


3. 날짜 조회할 때 소수점 사용하기 

select round(MONTHS_BETWEEN(SYSDATE,hire_date))
from employees

 

-> 앞에 round를 적으면 뒤에 소수점을 지워줌


4. 퇴사일 언제인지 계산하기

select hire_date, add_months(hire_date, 6)
from employees

 

-> 
HIRE_DAT ADD_MONT
-------- --------
05/06/14 05/12/14
05/08/13 06/02/13
입사 날짜에 6개월을 더해서 보여줌 
퇴사일 계산할때 사용 할 수 있음 


5. 원하는 요일이 며칠인지 날짜 조회하기

select next_day(sysdate, '월')
from dual

 

->
NEXT_DAY
--------
22/07/04
다음 주 월요일이 언제인지 날짜로 알려줌
숫자도 가능, (일월화수목금토) 순서대로 1,2,3... 


6. 현재 달의 마지막 날짜 조회하기 

select last_day(sysdate)
from dual

 

->
LAST_DAY
--------
22/07/31
해당 달의 마지막 날을 알려줌 


(응용) 입사 한 달의 마지막 날짜 조회하기

select hire_date, last_day(hire_date)
from employees

 

-> 
HIRE_DAT LAST_DAY
-------- --------
05/06/14 05/06/30
05/08/13 05/08/31
입사 날의 마지막 날짜가 며칠인지 알 수 있음


7. 현재 날짜와 시각 조회하기

select to_char(sysdate, 'YYYY.MM.DD, HH24:MI:SS')
from dual

 

->
TO_CHAR(SYSDATE,'YYY
--------------------
2022.07.01, 09:33:55
오늘 날짜와 현재 시각을 알 수 있음


8. 화폐 단위에 따라 급여 조회하기

select concat(to_char(salary, 'L999,999'),'원')
from employees

 

->
CONCAT(TO_CHAR(SALA
-------------------
          ₩3,800원
          ₩3,600원

'L999,999'에서 L은 해당 나라의 화폐 단위로 나타내줌
뒤에 숫자는 금액 단위

 

 

<산수>


1. 뺄셈 

select to_number('5432153') - to_number('7534')
from dual

 

->
5424619
뺄셈 계산해줌( *, + 표시로 곱셈, 덧셈 등 응용 가능)


2. 화폐 단위 계산하기 

select to_number('100,000', '999,999') - to_number('50,000', '99,999')
from dual

 

->
TO_NUMBER('100,000','999,999')-TO_NUMBER('50,000','99,999')
-----------------------------------------------------------
                                                      50000

화폐 단위를 계산 할 때는 뒤에 '999,999' 이런식으로 단위에 맞는 
숫자를 넣어준다. 출력 값이 조금 지저분 해 보일 때는
to_char 함수로 묶어서 나타내준다 
->
TO_CHAR(TO_NUMBER('100,000','999,999')-T
----------------------------------------
50000