☞ 결과가 일자 |
|
현재 날자에서 하루 전 |
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 ; |
|
|
|