ORACLE 두 날짜 간 일 수 연산 : TRUNC(DATE) 활용

2018. 1. 23. 18:15모두모두 개발자다요/DATABASE

현재날짜 2018년 01월 24일

값 : '20180124' (YYYYMMDD 형식의 문자열)

마감일자 : 2018년 01월 25일

값 : '20180125'


고정된 YYYYMMDD 형식의 주어진 문자열로  D-DAY 값을 구한다면 다음과 같이 빼면 그만이다.

SELECT TO_DATE('20180125', 'YYYYMMDD') - TO_DATE('20180124', 'YYYYMMDD') FROM DUAL

== > 결과 : 1


만약, 현재일시 SYSDATE 기준으로 마감일자와의 차이 D-DAY 값을 구한다면

SELECT TO_DATE('20180125', 'YYYYMMDD') - SYSDATE FROM DUAL

==> 결과 : 0.4654513888888888888888888888888888888889


정확히 2018년 01월 24일 00 시 00 분 00 초 시점이 지난 이후에는 값이 1 이 아닌 0.xxxxxx 값이 나온다.


빼기 연산 이전에 TRUNC 함수로 SYSDATE 의 일(DD) 아래 초단위 값을 절삭 처리 후 연산해야 일반적인 D-DAY 값을 구할 수 있다.

SELECT TO_DATE('20180125', 'YYYYMMDD') - TRUNC(SYSDATE) FROM DUAL