Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Odfiltruj rekordy, które nie są w tym formacie daty wyrocznia

Możesz użyć funkcji wbudowanej, aby sprawdzić, czy data jest ważna. Tak:

WITH 
FUNCTION is_valid_date (date_str_i VARCHAR2, format_i VARCHAR2) RETURN VARCHAR2
/* check if date is valid */
AS
  l_dummy_dt DATE;
BEGIN
  SELECT TO_DATE(date_str_i,format_i) INTO l_dummy_dt FROM DUAL;
  RETURN 'Y';
EXCEPTION WHEN OTHERS THEN
  RETURN 'N';
END; 
dates  AS (
SELECT '0201-05-31 00:00:00' dates_col FROM dual UNION ALL
SELECT '31-May-2019 00:00:00' FROM dual UNION ALL
SELECT 'TEXT' FROM dual UNION ALL
SELECT '15-May-2019 00:00:00' FROM dual UNION ALL
SELECT '01-Apr-2019 00:00:00' FROM dual UNION ALL
SELECT '01-Apr-2019' FROM dual 
) SELECT *
  FROM dates
 WHERE is_valid_date(dates_col,'DD-MON-YYYY HH24:MI:SS') = 'Y';



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. znak do tej pory w Oracle sql

  2. Nie można załadować pliku lub zestawu dla Oracle.DataAccess w .NET

  3. CLOB vs. VARCHAR2 i czy są inne alternatywy?

  4. Jak przechowywać wynik funkcji, która zwróci sysrefcursor?

  5. Zdobądź 10 najlepszych produktów z każdej kategorii