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 이상에서만 사용가능함.
- 출처 - https://gent.tistory.com/428
- 사실 출처를 타고가면 정말 더 자세하게 포스팅을 너무 잘해놓으심.
[Oracle] 오라클 문자열 날짜 형식 체크 방법 (IsDate)
오라클에서 문자열의 날짜를 TO_DATE 함수를 사용하여 날짜 형식으로 변경할 때 형식이 맞지 않으면 "ORA-01839: 지정된 월에 대한 날짜가 부적합합니다" 라는 오류가 발생한다. 문자열을 날짜 형식
gent.tistory.com
728x90
320x100
'💻 하나씩 차곡차곡 > DB (SQL)' 카테고리의 다른 글
[MySQL] 설치하기 MAC(맥북) Ver (0) | 2024.03.27 |
---|---|
[SQL/Oracle] WHERE 1 = 1 사용하는 이유, 사용하지 말아야 하는 이유 (0) | 2024.01.31 |
오라클 ""(쌍따옴표) VS '' (홑따옴표) (0) | 2023.12.06 |
[Oracle/오라클] INSTR() 이란? (0) | 2023.10.31 |
SQLD 삼수생이 공부할 때, 도움받았던 유튜브 영상들 (0) | 2022.06.24 |