sql >> データベース >  >> RDS >> Oracle

文字列oracleから日付を抽出します

    使用できるもの:

    SELECT  TO_DATE(
              REGEXP_SUBSTR(
                'Chicago, IL, April 20, 2015 — and so on text here',
                '(JANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|'
                  || 'OCTOBER|NOVEMBER|DECEMBER)'
                  || '[[:space:]]+([012]?[0-9]|3[01])'
                  || '[[:punct:][:space:]]+\d{4}',
                1,
                1,
                'i'
              ),
              'MONTH DD YYYY'
            )
    FROM    DUAL;
    

    日付も検証する場合(February 29, 2001でエラーが発生しないようにするため) )次に、ユーザー定義関数を使用できます:

    CREATE FUNCTION parse_Date(
      in_string     VARCHAR2,
      in_format     VARCHAR2 DEFAULT 'YYYY-MM-DD',
      in_nls_params VARCHAR2 DEFAULT NULL
    ) RETURN DATE DETERMINISTIC
    AS
    BEGIN
      RETURN TO_DATE( in_string, in_format, in_nls_params );
    EXCEPTION
      WHEN OTHERS THEN
        RETURN NULL;
    END;
    /
    

    そして、TO_DATE( ... )を置き換えます PARSE_DATE( ... )を使用した関数



    1. 復元エラーに関するmysqldumpの問題:'インポートする前にテーブルスペースを破棄してください'

    2. Google Data Studio-Cloud SQLForMySQLコネクタエラー

    3. MicrosoftAccessでレポートヘッダーにタイトルを追加する方法

    4. Windows認証ユーザーとしてOLEDBプロバイダーエラーのインスタンスを作成できません