DB/Oracle
[Oracle] 날짜 및 시간 형식 변환, 비교 TO_CHAR(), TO_DATE()
mndev
2024. 1. 19. 13:54
1. 날짜 및 시간 형식 변환하기
TO_CHAR() 함수는 날짜, 시간, 문자 값을 지정한 VARCHAR 타입 문자열로 변환하는 함수입니다.
TO_CHAR(날짜 데이터 타입, '지정 형식')
TO_CHAR() 함수를 사용하여 변환할 수 있는데
아래와 같이 날짜 지정 형식으로 변환하여 출력할 수 있습니다.
지정형식 | 설명 | 예 | 결과 |
CC | 세기 | TO_CHAR(SYSDATE, 'CC') | 24 |
YYYY or YY | 연도 | TO_CHAR(SYSDATE, 'YYYY') | 2024 |
Y,YYY | 콤마가 있는 연도 | TO_CHAR(SYSDATE, 'Y,YYY') | 2,201 |
YEAR | 문자로 표현된 연도 | TO_CHAR(SYSDATE, 'YEAR') | TWENTY TWENTYONE |
MM | 두 자리 값의 월 | TO_CHAR(SYSDATE, 'MM') | 04 |
MONTH | 아홉 자리를 위해 공백을 추가한 월 이름 | TO_CHAR(SYSDATE, 'MONTH') | 4월 |
MON | 세 자리의 약어로 된 월 이름(영문 설정일 경우) | TO_CHAR(SYSDATE, 'MON') | 4월 |
DDD, DD, D | 연, 월, 주의 일 | TO_CHAR(SYSDATE, 'DD') | 18 |
DAY | 아홉자리를 위해 공백을 추가한 요일의 이름 | TO_CHAR(SYSDATE, 'DAY') | 일요일 |
2. 날짜 비교하기
1) String형 날짜 비교
날짜를 문자형 형태로 비교하기 위해 date타입을 String으로 변환
TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS');
결과 > 20240119034515
* 12시간재로 비교할 경우 24를 12로
TO_CHAR() 함수를 사용해 원하는 날짜와 비교가 가능
SELECT DUMMY
FROM DUAL
WHERE '20190731' > TO_CHAR(SYSDATE, 'YYYYMMDD');
2) Date형 날짜 비교
반대로 String형태를 Data형태로 비교하고 싶은 경우 오라클의 TO_DATE()함수를 이용
TO_DATE('20190731034515', 'YYYYMMDDHH24MISS')
결과 > 2019/07/31 15:45:15
SELECT DUMMY
FROM DUAL
WHERE SYSDATE > TO_DATE('20190731', 'YYYYMMDD') ;
마찬가지로 12시간재로 바꾸고 싶은 경우 24를 12로 바꾸면 되고, 날짜만 비교하고 싶은 겨우 위와 동일하게 작업