Oracle
 sql >> база данни >  >> RDS >> Oracle

Филтрирайте записите, които не са в този оракул във формат на датата

Можете да използвате вградена функция, за да проверите дали датата е валидна. Като това:

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. Проблем при създаването на динамична таблица

  2. Как се пише клауза "Поръчай по" преди клауза "Къде".

  3. Защо Oracle показва ??? за специални знаци като åäö

  4. Динамично търсене на имена на колони за таблица, докато сте в sql заявка

  5. 2 функции, които получават деня, месеца и годината от дата в Oracle