Avatar billede sbm Nybegynder
16. februar 2005 - 11:18 Der er 5 kommentarer og
1 løsning

SQL til at finde ugyldige datoer

Jeg har en tabel der bl.a. indeholder et varchar(2) felt med en dato. Formatet er YYYY-MM-DD og det sker at der ryger en ugyldig dato ind.

Hvordan laver jeg en select, så jeg får fat i alle rækker med en ugyldig dato?
Avatar billede sbm Nybegynder
16. februar 2005 - 11:19 #1
ehm... varchar(2) -> varchar2  ;-)
Avatar billede pnielsen Nybegynder
16. februar 2005 - 12:27 #2
For lige at være helt sikker -

Vi du checke for om DD er mellem 1-31. Checke for at MM er mellem 1-12. Checke for at der indgår 2 x "-" i datoen osv?

Eller hvad er det du vil have?
Avatar billede sbm Nybegynder
16. februar 2005 - 12:59 #3
Ja, datoen skal altid være præcis i formatet YYYY-MM-DD eller slet ikke sat. (null)

Hvis datoen er sat, skal den naturligvis være gyldig. Så 1999-02-29 vil være ugyldig, da 1999 ikke er et skudår. Ok, det var måske et tarveligt eksempel? :-)

Jeg smider gerne lidt flere point, hvis ikke det kan løses på en nogenlunde enkel måde.
Avatar billede sbm Nybegynder
16. februar 2005 - 12:59 #4
1999-2-2 er også ugyldigt
Avatar billede pnielsen Nybegynder
16. februar 2005 - 15:27 #5
Hvad med at lave en function og bruge den ?

noget ala:

create function valid_date (date_str varchar2, format_str varchar2)
return number as
junk date;
begin
junk := to_date(date_str, format_str);
return 1;
exception
when others then
return 0;
end;
/

eller var det datoen du ville have tilbage og null hvis den ikke passede, så ret den lige selv.
Avatar billede sbm Nybegynder
17. februar 2005 - 12:02 #6
Nej, det var vist ikke lige det jeg søgte. Det er også godt det samme. Jeg har fået skovlen under problemet. Du får point for din tid til at forfatte nogle besvarelser.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester