Ako ima tabelu PROBA u kojoj imas kolonu koja se zove A
onda je upit sledeci:
select decode(length(a),
8, decode (substr(a, 3, 1),
'.', decode (substr(a, 6, 1),
'.', a,
'nije datum'),
'/', decode (substr(a, 6, 1),
'/', a,
'nije datum'),
'nije tacka ni slash 8'),
10, decode (substr(a, 3, 1),
'.', decode (substr(a, 6, 1),
'.', a,
'nije datum'),
'/', decode (substr(a, 6, 1),
'/', a,
'nije datum'),
'nije tacka ni slash 10'),
'nije datum bre') samo_datumi
from proba;
Ako malo bolje pogledas videces da ovaj upit obradjuje sledece formate datuma
DD.MM.YY
DD.MM.YYYY
DD/MM/YY i
DD/MM/YYYY
ja sam ti dao ideju a ti ako imas jos neki format onda ga samo dodaj u upit.
Ovaj upit ima svojih nedostataka, ali da bi radio 100% kako treba onda bi bilo
previse komplikovano da se ispitaju svi slucaji karaktera koji se pojavljuju u podatku.
Nije nemoguce, ali sada nemam vremena da se bakcem sa tim.
Inace ako nije preko potrebno datume uvek smestaj u polja DATE, TIMESTAMP i sl. da ne bi morao da radis ovo sto sada radis. Ovo vrlo lako moze da se uradi preko funkcije/procedure (nekoliko linija), ali iz upita je malo komplikovanije.
Toliko.
// Edit by StRiPy: Dodan PRE tag radi bolje preglednosti.
[Ovu poruku je menjao StRiPy dana 11.05.2005. u 13:49 GMT+1]