복붙노트

[SQL] 날짜를 구문 분석 후 오라클을 선택 문에서 수를 돌려줍니다

SQL

날짜를 구문 분석 후 오라클을 선택 문에서 수를 돌려줍니다

나는 그것이 코드를 반환하여 지정된 형식의 날짜 문자열을 구문 분석 할 수 있는지 알려주는 오라클 SQL select 문 작성하려면 - 실패 (예외) 성공의 경우 양수에 제로 :

    SELECT
     CASE
      WHEN PARSING SUCCESSFUL (ie. to_date('1-Jan-2001','dd-mon-yy') succeeds) THEN 1
      ELSE 0
     END  
    FROM DUAL;

이걸 어떻게 작성합니까? 구문 분석에 실패하면, ELSE 조건은 값을 반환합니다? 나는 SELECT 문 자체에서 모든 검사를 할 필요가있다. 도와주세요.

감사 의 어플리케이션 개발자

해결법

  1. ==============================

    1.당신이 함수를 만들 수 있다면 당신은 뭔가를 할 수 있습니다 :

    당신이 함수를 만들 수 있다면 당신은 뭔가를 할 수 있습니다 :

    SQL 바이올린

    오라클 11g R2 스키마 설정 :

    CREATE OR REPLACE FUNCTION is_Valid_Date (
      p_date   IN VARCHAR2,
      p_format IN VARCHAR2 DEFAULT 'DD-MON-YY'
    ) RETURN NUMBER
    IS
      d DATE;
    BEGIN
      d := TO_DATE( p_date, p_format );
      RETURN 1;
    EXCEPTION
      WHEN OTHERS THEN
        RETURN 0;
    END;
    /
    

    쿼리 1 :

    SELECT is_Valid_Date( '12-Feb-13' ),
           is_Valid_Date( 'XX-Feb-13' )
    FROM DUAL
    

    결과 :

    | IS_VALID_DATE('12-FEB-13') | IS_VALID_DATE('XX-FEB-13') |
    |----------------------------|----------------------------|
    |                          1 |                          0 |
    
  2. from https://stackoverflow.com/questions/20859135/return-number-from-oracle-select-statement-after-parsing-date by cc-by-sa and MIT license