mun dev

[Oracle] 날짜 및 시간 형식 변환, 비교 TO_CHAR(), TO_DATE() 본문

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로 바꾸면 되고, 날짜만 비교하고 싶은 겨우 위와 동일하게 작업