본문 바로가기
💻 하나씩 차곡차곡/DB (SQL)

[Oracle/오라클] 날짜형식 체크하는 방법 3가지

by 뚜루리 2024. 1. 19.
728x90
320x100
[오늘의 궁금증]

레거시를 분석하다보니 날짜형식을 체크하는 법을 처음 알게 되었다. (예를 들어 해당 컬럼이 날짜형식이 맞으면 1 아니면 0을 반환하는) 그래서 나중에 써먹을 날이 꼭 올것 같아서 정리해두려고!

이걸 모르고 그냥 왜냐면 그냥 단순하게 생각해서 TO_DATE(컬럼명) 이렇게 해버리면 걍 에러가 떨어져 버림.

 

1. 사용자 정의 함수 생성

CREATE FUNCTION is_date(p_string VARCHAR2, p_format VARCHAR2)
    RETURN NUMBER 
IS
    v_date DATE;
BEGIN
    v_date := TO_DATE(p_string, p_format);    
    RETURN 1;   
    
EXCEPTION
    WHEN OTHERS THEN
        RETURN 0;
END;
SELECT is_date('2024-01-12', 'YYYY-MM-DD')
  FROM DUAL
  • 날짜 형식이라면 1, 아니면 0을 반환하도록 생성
  • 모든 버전에서 사용가능

 

 

3.  ALIDATE_CONVERSION 함수 사용(오라클 12c R2 이상)

SELECT VALIDATE_CONVERSION('2024-01-12' AS DATE, 'YYYY-MM-DD')
  FROM DUAL
  • 날짜 형식이라면 1, 아니면 0을 반환함
  • 단, 오라클 12c R2 이상에서만 사용가능함.

 

 

 


 

[Oracle] 오라클 문자열 날짜 형식 체크 방법 (IsDate)

오라클에서 문자열의 날짜를 TO_DATE 함수를 사용하여 날짜 형식으로 변경할 때 형식이 맞지 않으면 "ORA-01839: 지정된 월에 대한 날짜가 부적합합니다" 라는 오류가 발생한다. 문자열을 날짜 형식

gent.tistory.com

 

728x90
320x100