오라클 날짜 타입 비교
오라클 쿼리를 작성하다 보면 날짜를 비교하는 케이스가 많이 발생합니다. 문제는 이 날짜 타입이 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')
'[개발] Programming > Database' 카테고리의 다른 글
오라클, VARCHAR2 날짜를 원하는 포멧으로 변경하는 방법 (0) | 2019.08.09 |
---|---|
오라클 MERGE INTO, INSERT와 UPDATE 한 번에 실행 (0) | 2019.08.02 |
ora-01843: not a valid month, 지정한 월이 부적합합니다. (0) | 2019.06.01 |
ora-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 오류 (0) | 2019.05.28 |
오라클 ORA-01722: 수치가 부적합합니다. (0) | 2019.05.24 |
댓글