모두모두 개발자다요/DATABASE
ORACLE 두 날짜 간 일 수 연산 : TRUNC(DATE) 활용
鬼미쿠
2018. 1. 23. 18:15
현재날짜 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
반응형