MySQL Geburtsdatum

Hi,

ich möchte von meiner User Tabelle z.b. alle User ausgeben die aktuell (auf das heutige Datum bezogen) über 18 Jahre alt sind bzw. bis 10 und bis 12.

Mein Versuch war folgender [size=85](der leider in die Hose ging :ps:)[/size]

SELECT `user` FROM `user` WHERE `geburtstag` >= '21.10.1995'

Als ausgabe erhalte ich … hab das mal farblich markiert damit man es deutlicher sieht(grün = korrekt user vor dem 21.10.1995 geboren; rot= fehler aber mysql behauptet user vor dem 21.10.1995)

user geburtstag
Ryon_ 21.10.1995
AnNii_95 28.12.1995
Jenni_liebt_ihn 22.8.1995
basti 9.10.1995
colbie 21.6.1993

miminini 24.12.1993
AnqiiE 28.6.1995
Justin_love 26.7.1994

Nina-loveJB 30.3.1996
Phiamaus 9.8.1991
EbRuLeIn 21.7.1995

Sweet_Lisa 29.12.1996
mausi 23.12.1994

Kann mir bitte jemand einen Tipp, Link oder SQL Befehl posten.

PS: geburtstage so eingetragen in datenbank TAG.MONAT.JAHR (TAG = 1 stellig; MONAT = 1 stellig; JAHR = 4 stellig) z.b. 1.1.2000 oder 21.10.2000

LG und schon mal danke
Flo

pack das in die where clause

ohne anführungszeichen

Dann ändere das bitte als allererstes.

Es ist nicht klug, Datumsangaben in Textfeldern zu speichern.
Nutze einen der Datums-Datentypen, die MySQL anbietet.

Dann fallen auch solche Auswertungen wesentlich leichter.

Bei mir hat sich datum im internationalen Format bewährt 2010-12-08 Spaltentyp DATE

Dann klappt das ganze auch mit MYSQL :wink:

timestamp gibt doch gewisse probleme vor dem 1.1.1970 wenn ich das noch richtig in Erinnerung habe.

:morgen:

hab das jetzt mal mit dem Befehl versucht

SELECT * FROM `user` WHERE `geburtstag` >= '21.10.1995' AND TIMESTAMPDIFF( SECOND , "user", NOW( ) ) >=0 LIMIT 0 , 30
Als ergebnis bekomme ich garnichts

Mit dem Datumsformat danke für den Tipp, da das meine erste selbst geschriebene Community ist (vor 1 od 2 jahren) kannte ich die speicherungstypen noch nicht so. Kann ich das jetzt noch nachträglich ändern ohne in jeden User rein zu gehn und das abändern? (ca 7?? user)
Heißt das für mich, direkt mit MySQL wird das gewünschte Ergebnis, nicht umsetzbar sein. Ok dann muss ich alle User abfragen und mit php das überprüfen ob sie älter als 18 sind.

Trozdem danke für euere Bemühungen.
LG Flo

dort wo ich null geschrieben habe, musst du -18 jahre in sekunden angeben, dann klappt das glaub auhc.

das einzige problem könnte das ändern des feldtypes sein.

folgendes müsste klappen:

  1. sicherungskopie
  2. mit php die daten auslesen, und einfach von dd.mm.yyyy nach yyyy-mm-dd umschreiben
  3. update mit php
  4. feldtyp ändern

HI,

danke noch mal für eure Hilfe… das mit dem Wert von 18 Jahren in Secunden ging leider nicht … naja ich habs jetzt einfach auf php basis umgesetzt auch wenn es nicht gerade das beste is … [size=85](aber auf der seite ist einiges nicht so toll; wie gesagt erste eigene php seite)[/size]

LG und trozdem danke Flo