Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: henfoni am April 04, 2011, 12:55:39

Titel: String Feld mit aktuellen Datum vergleichen
Beitrag von: henfoni am April 04, 2011, 12:55:39
Moin!

Ich habe ein Problem, bei dem ich irgendwie nicht weiter komme:

Ich habe ein Feld in einer Tabelle in dem das Geburtsdatum einer Person in der Form "31.01.1990" als char/string abgespeichert ist.
Nun möchte ich alle Personen rausfiltern, die zum Zeitpunkt der aktuellen Abfrage minderjährig sind. Hab schon sehr viel rumprobiert, aber zu keiner passenden Lösung gekommen.
Hier mal ein paar Versuche (von denen ich eigentlich dachte, dass sie klappen müssten)

HAVING Int(Right(geb_dat,4)+18) & Mid(geb_dat,4,2) & Left(geb_dat,2) > Format(Date(),"yyyymmdd");
HAVING DateAdd ('yyyy',18, Cdate(geb_dat) ) > Date();

Jemand n Tipp für mich oder Lust selber zu knobeln? ;-)

Schönen Gruß



Titel: Re: String Feld mit aktuellen Datum vergleichen
Beitrag von: DF6GL am April 04, 2011, 13:03:25
Hallo,

Jemand n Tipp für mich oder Lust selber zu knobeln?


ja: Stell den Datentyp des Feldes von Text auf Datum/Uhrzeit um   und  http://www.donkarl.com/?FAQ2.7


nein..  ::)
Titel: Re: String Feld mit aktuellen Datum vergleichen
Beitrag von: oma am April 04, 2011, 14:34:37
Hallo,

du kannst auch einfach den Datums-String in einer Abfrage in ein Datumsfeld konvertieren. (Funktion ZDate bzw.  CDate)
Dann damit mit >=DatAdd("yyyy";-18;Datum())  abfragen

Zusammen:

select Vornamen, Nachname, CDate([DeinGeburtsfeld]) AS Geburtsdatum
from DeineTabelle
where CDate([DeinGeburtsfeld])>=DateAdd("yyyy",-18,Date())


Gruß Oma
Titel: Re: String Feld mit aktuellen Datum vergleichen
Beitrag von: henfoni am April 04, 2011, 16:10:42
Hallo,

danke euch beiden für die schnellen Antworten!
Klappt super mit dem Vorschlag von oma.
Den Datentyp kann ich leider nicht umstellen ;-) Ich werte nur aus, hab die Datenquelle also nicht selbst entwickelt, das macht ne Fremdfirma..
Das blöde is jetzt nur, dass manche unserer Angestellten Datumsangaben in der Form 00.04.1970 machen, wenn der genaue Tag nicht bekannt ist. Solche Angaben schmeißt der dann auch als minderjährig mit raus. Muss mal sehen, wie ich das umgeh..

Gruß
Titel: Re: String Feld mit aktuellen Datum vergleichen
Beitrag von: database am April 04, 2011, 16:16:58
Hallo,

Zitatdass manche unserer Angestellten Datumsangaben in der Form 00.04.1970 machen, wenn der genaue Tag nicht bekannt ist
Das finde ich etwas unüberlegt - da sollten sie dann schon besser 01 für den Tag eintragen - damit entspricht dann der Eintrag wenigstens einem Datum!

Du könntest durch eine Aktualisierungsabfrage diese Werte ändern wenn du möchtest.


UPDATE DeineTabelle SET DeinDatumsfeld= "01" & Right([DeinDatumsfeld],8)
WHERE Left([DeinDatumsfeld],2)="00";