sql >> Database teknologi >  >> RDS >> Oracle

Regelmæssigt udtryk for et bestemt datoformat

Det er en dårlig idé. Den eneste måde at validere, at en dato er korrekt, er at forsøge at konvertere den til en dato. Hvis konverteringen mislykkes, er det ikke en dato; hvis det lykkes, så måske det være. Datoer er alt for komplekse til, at et almindeligt sprog kan parses.

Så opret en funktion, der konverterer den til en dato; du kan lave, hvis langt mere generisk, end du har her, så det kan derefter genbruges til andre formål:

create or replace function validate_date (
     PDate in varchar2
   , PDateFormat in varchar2
     ) return date is
begin
   return to_date(PDate, PDateFormat);
exception when others then
   return null;
end;

Dette returnerer en dato, hvis det er i stand til at validere, at dato- og datoformatet matcher, ellers returnerer NULL, hvis der er nogen fejl. Din forespørgsel bliver derefter:

select 'P' from dual where validate_date('20140506', 'yyyymmdd') is not null


  1. bestil efter newid() - hvordan virker det?

  2. Vælg fra mysql indsat i variabel VB.NET

  3. Tablespace SYSMGMTDATA er FULD i Grid Infrastructure Management Repository (MGMTDB)

  4. Forhold til mange og få uden dette