[날짜형 실전예제]

결과가 일자

 

현재 날자에서 하루 전

select sysdate() - 1       from dual ;

 

1시간을 빼기

select sysdate() - 1/12    from dual ;

 

1분을 빼기

select sysdate() - 1/12/60 from dual ;

 

결과가 월

 

다음월 

select to_char(add_months(to_date('20020201', 'yyyymmdd'), 1),'yyyymm')
from   dual;

 

millisecond 보기

 

select to_char(current_timestamp, 'yyyy.mm.dd HH24:MI:SS-XFF') from dual;

 

select to_char(sysdate, 'yyyy.mm.dd HH:MI:SS')   from  dual;

         select to_char(sysdate, 'yyyy.mm.dd HH24:MI:SS')   from  dual;

 

to_date에서 (일자, 'YYYYMMDDHH24MI') 일 경우
00:00 시 ~ 23:59  까지만 가능하다. 즉, 일자에  '200409202400'  으로 하게 되면

      out_return final-->-1850,ORA-01850: hour must be between 0 and 23  오류가 발생한다.

 

날수/월수/년수 구하기

 

두날짜 사이의 시간구하기

TRUNC((to_date(종료일자,'YYYYMMDDHH24MI')
     -
to_date(시작일자,'YYYYMMDDHH24MI')) * 24, 2);

 

두날짜 사이의 월수구하기

MONTHS_BETWEEN((TO_DATE('종료일자') + 1,
                
TO_DATE('시작일자')));

 

년수 구하기
       

TRUNC(MONTHS_BETWEEN(TO_DATE('종료일자') + 1,                      TO_DATE('시작일자')) / 12, 0)

 

타입 변경

 

문자 타입을 --> 날짜 타입으로 변경 : TO_DATE(문자형 날짜, '형태')
                                                             (형태 예, 'YY/M/DD')

 

날자 타입을 --> 문자 타입으로 변환  : TO_CHAR(sysdate, 'DD/MM/YY')

 

일 / 월 / 년  올림  (참고, 절사일 경우는 TRUNCATE 로 하면 된다.)

 

12시 이후면 올림 :  SELECT ROUND(SYSDATE, 'DAY') FROM DUAL ;

 

15일 이후면 올림 :  SELECT ROUND(SYSDATE, 'MONTH') FROM DUAL ;

 

6월 이후면 올림  :  SELECT ROUND(SYSDATE, 'YEAR') FROM DUAL ;

 

기타

 

요일 구하기  :  SELECT LAST_DAY(DATE) FROM DUAL ;

 


 

☞ 시한편

 

(12) 기타

메쏘드명          설명
========================
daysBetween    날짜간 일수구하기
addDays        일수 더하기
whichDay       요일구하기
monthsBetween  날짜간 월수구하기
addMonths      월수 더하기
lastDayOfMonth 그 달의 마지막날짜 구하기
addYears       년수 더하기

 

 

'(DB) Oracle > 함수' 카테고리의 다른 글

Oracle - 날짜_Interval  (0) 2017.01.18
Oracle - Datetime 함수 목록  (0) 2017.01.18
Oracle - 분석용 함수  (0) 2017.01.18
Oracle - 기타 함수  (0) 2017.01.18
Oracle - 그룹 함수  (0) 2017.01.18
Posted by 농부지기
,