Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Ngày trích xuất từ ​​chuỗi oracle

Bạn có thể sử dụng:

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;

Nếu bạn cũng muốn xác thực ngày tháng (để không gặp lỗi đối với February 29, 2001 ) thì bạn có thể sử dụng một hàm do người dùng xác định:

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;
/

Và thay thế TO_DATE( ... ) hàm với 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. không thể lấy tham số từ thủ tục được lưu trữ bằng php

  2. Sự cố chuyển đổi Oracle SQL DATE bằng iBATIS qua Java JDBC

  3. Làm cách nào để biết hệ thống Oracle của tôi được thiết lập để hỗ trợ các ký tự Unicode hoặc multibyte?

  4. Làm cách nào để đặt định dạng ngày giờ tùy chỉnh trong Oracle SQL Developer?

  5. Tôi chỉ cần hỏi mã giá nếu gõ:=E