본문 바로가기
[개발] Programming/Database

오라클 날짜(DATE) 비교, to_date, to_char 함수

by eatyourKimchi 2019. 7. 31.

 

오라클 날짜 타입 비교

 

 오라클 쿼리를 작성하다 보면 날짜를 비교하는 케이스가 많이 발생합니다. 문제는 이 날짜 타입이 string인 경우와 date 타입인 경우가 있어서 형변환을 해줘야 된다는 것입니다. 왜냐하면 date 타입인 경우 string 타입과 직접 비교가 안되기 때문입니다.

 

 

 

 

 

1. string형 날짜 비교

 

날짜를 문자형 형태로 비교하기 위해서는 date 타입을 string으로 변환해줍니다.

오라클의 TO_CHAR() 함수를 이용하면 문자형으로 변환이 가능하죠. (* 12시간재로 비교할 경우 24를 12로 바꿔줍니다.)

 

TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')

결과 > 20190731034515

 

예) 20190731 > 오늘 비교

1
2
3
4
SELECT DUMMY
  FROM DUAL
 WHERE '20190731' > TO_CHAR(SYSDATE, 'YYYYMMDD')
;
cs

 

 

시간을 제외한 날짜만 비교하고 싶은 경우 'YYYYMMDDHH24MISS'를 'YYYYMMDD'으로 기재하면 됩니다.

 

TO_CHAR(SYSDATE, 'YYYYMMDD')

결과 > 20190731

 

 

 

2. date형 날짜 비교

 

반대로 string 형태를 date 형태로 비교하고 싶은 경우 오라클의 TO_DATE() 함수를 이용합니다.

 

TO_DATE('20190731034515', 'YYYYMMDDHH24MISS')

결과 > 2019/07/31 15:45:15

 

예) 오늘 > 20190731 비교

1
2
3
4
SELECT DUMMY
  FROM DUAL
 WHERE SYSDATE > TO_DATE('20190731''YYYYMMDD')
;
cs

 

 

마찬가지로 12시간재로 바꾸고 싶은 경우 24를 12로 바꾸면 되고,

TO_DATE('20190731034515', 'YYYYMMDDHH12MISS')

 

날짜만 비교하고 싶은 경우 위와 동일하게 작업하면 됩니다.

TO_DATE('20190731034515', 'YYYYMMDD')

 

 

 

댓글