날짜 : 2021-06-25

태그 : oracle SQL 숫자처리 함수

메모

아래에 설명된 모든 예제는 oracle 기준으로 작성되었습니다.


 
select sysdate from dual; -- 오라클에서는 기본포맷이 RR/ MM / DD임 연도가 YY가아니라 RR로 표시됨
 
-- yy형식의 연도는 현재세기와 동일하게 처리한다 . 현재 1995년도에 YY형식을쓰면 1995 가반환됨 . 현재 2021년이면 2095가반환된다.
 

 
select * from NLS_SESSION_PARAMETERS;
 
--오라클에 저장된 여러가지 파라미터 설정값들을 볼수있는 위치
 

 
select sysdate 오늘 , sysdate +1 내일, sysdate -1 어제
 
from dual;
 

 
select ename, hiredate, trunc((sysdate - hiredate)/365) || '년' 근속연수
 
from emp
 
order by 3 desc;
 

 
select trunc(months_between(sysdate,hiredate)) ||'개월' 근무개월수 , ename , hiredate
 
from emp
 
order by 1 desc;
 

 
select sysdate +100
 
from dual;
 
--sysdate 날짜의 현재날짜에서+100 한것이니. 100일뒤의 날짜가 출력된다.
 

 
select sysdate 현재 , ADD_MONTHS(sysdate,1) 다음달 , ADD_MONTHS(sysdate,-1) 이전달
 
from dual;
 
--ADD_MONTHS는 월을 더해주는 함수이다. MONTH 가아닌 MONTHS 스펠링을주의하자
 

 
select ename , hiredate , add_months(hiredate,5)
 
from emp
 
order by hiredate desc;
 

 
select next_day(sysdate,7)
 
from dual;
 
--엑셀함수와 비슷하게 숫자 1일요일 ~ 7은 토요일 요일은 '토요일' 작은따옴표, 숫자는 작따없이입력하면된다.
 

 
select ename , hiredate , next_day(hiredate,'금') ,next_day(hiredate,6)
 
from emp
 
order by 3 desc;
 
-- next_day함수는 기준일 또는 기준컬럼날짜 (hiredate)를 기준으로 그 주의 돌아오는 요일이(금요일) 언제인지를 반환하는 함수이다.
 

 
select next_day(ADD_MONTHS(sysdate, 1),1) "한달뒤돌아오는일요일"
 
from dual;
 

 
select last_day (sysdate)
 
from dual;
 
--간단한 last_day함수 해당 날짜가 속한 날의 마지막 날이 언제까지있는지.
 

 
함수혼합
 
select hiredate,round(hiredate,'YEAR'),round(hiredate,'MONTH')
 
from emp;
 
--round 함수안에 날짜를넣으면 가까운 년도로 반올림됨
 

 
select hiredate , trunc(hiredate,'YEAR')
 
from emp;
 
--trunc 함수도 안에 year 나 month 를 넣으면 절삭(버린다)해버린다.
 

 
select trunc(sysdate,'month')
 
from dual;
 

생각 (질문)

출처 (문헌)

연결 (이유)

참고문헌