728x90
내가 해야할 일은 USER_SOL 테이블에서 현재로부터 '335일' 지난 계정을 찾는 것이었다.
이를 테면, VARCHAR2(14)인 칼럼 DT_LAST가 있다고 하자.
특정 데이터의 DT_LAST의 값은 아래와 같다.
이 중 오늘로부터 335일 전의 데이터들만 추출하고 싶을 때, VARCHAR과 현재 날짜를 비교해야하는 것이다.
SELECT *
FROM USER_SOL
WHERE 1=1
AND TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD'), 'YYYYMMDD') - TO_DATE(SUBSTR(DT_LAST, 0, 8), 'YYYYMMDD') = 335
위와 같이 SYSDATE를 TO_CHAR을 이용해서 YYYYMMDD꼴로 변환 후, TO_DATE로 DATE형식으로 다시 변환한다. 이후, SUBSTR(DT_LAST, 0, 8) : DT_LAST 칼럼의 0번째 부터 8자리를 반환
을 TO_DATE로 YYYYMMDD 꼴로 변환해서 빼주면, ORACLE에서 날짜의 차이를 구할 수 있다.
'Database > 🅾 Oracle' 카테고리의 다른 글
칼럼 순서 변경 방법 [SQL / Oracle] (0) | 2022.07.21 |
---|
댓글