sql >> Databáze >  >> RDS >> Oracle

Ověřte datum v Oracle bez použití funkce

Formát můžete otestovat pomocí regulárního výrazu.

Bylo by to něco jako:

select dates
from tbl
where regexp_like(dates, '[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}')

Tohle funguje dobře. Zkontroluje, zda je formát ve formátu "4místné číslo / 2místné číslo / 2místné číslo". Možná budete chtít něco silnějšího, například:

select dates
from tbl
where regexp_like(dates, '[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}') or
      (substr(dates, 1, 4) not between '1900' and '2014' or
       substr(dates, 6, 2) not between '01' and '12' 
       substr(dates, 9, 2) not between '01' and '31'
      )

Tím se zkontroluje formát a přiměřené hodnoty v každém sloupci. Samozřejmě, že nekontroluje 31. června, ale zachytí mnoho chyb.



  1. Jak najít předchozí záznam [n-per-group max(timestamp) <timestamp]?

  2. Jak aktualizovat tabulku pomocí activeandroid po přidání nového sloupce

  3. Oracle 12c IDENTIFIKOVANÝ PODLE HODNOT

  4. Duplicitní sady dat vloženy do tabulky