Oracle
 sql >> база данни >  >> RDS >> 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Имената на Oracle TNS не се показват при добавяне на нова връзка към SQL Developer

  2. прочетете първо 1kb от blob от oracle

  3. Вземете името на извикващата процедура или функция в Oracle PL/SQL

  4. Добър инструмент за разработка и управление на база данни на Oracle в Windows

  5. Получавам грешка ORA-01775:циклична верига от синоними, когато използвам sqlldr