Hi Richard,
ich habe deine beiden vorschläge getestet aber leider funktionieren
beide nicht.
Folgender Vorschlag von Gregor Hermens funktioniert prima
bei deiner Abfrage müsste das Datum gleichzeitig größer und kleiner sein.
Probier mal (ungetestet):
... WHERE `gebdat` >= DATE_SUB('$aktive_user_gebdat', INTERVAL 5 YEAR) AND
`gebdat` <= DATE_ADD('$aktive_user_gebdat', INTERVAL 5 YEAR)
hth
Gruß,
Gregor
Gruesse an alle Helfer ;)
Alex
RICHARD_STRACKE@stripped wrote:
>hi
>
>Wenn du es so wie unten machst, würde ich ein OR statt AND nehmen,
>da:
>
>1982 - 1980 = 2
>1980 - 1982 = -2
>
>2 >= AND -2 <= false
>
>
>
>Da aber MySQL 'and' optimiert hat und 'or' nicht würde ich es eher so
>machen:
>
>
>SELECT name FROM tabelle WHERE 'YEAR(gebdat)' -
>'YEAR($active_user_gebdat)' > -5 AND 'YEAR(gebdat)' -
>'YEAR($active_user_gebdat)' < 5
>
>oder gleich
>
>SELECT name FROM tabelle WHERE 'YEAR(gebdat)' -
>'YEAR($active_user_gebdat)' between -5 AND 5
>
>mit Gruß,
>
>Richard Stracke
>
>
>
>
>
> Alex
>
> <idioms@freenet. An: "ML MySQL dt.(freenet)"
> <mysql-de@stripped>
> de> Kopie: (Blindkopie: RICHARD
> STRACKE/QVCDE)
> Thema: rechnen mit datum
>
> 15.01.2004 19:20
>
>
>
>
>
>
>
>
>hi liebe liste,
>
>ich habe eine tabelle mit folgenden spalten:
>gebdat --> vom typ DATE --> bsp: 1982-10-06
>name --> typ VARCHAR(255) --> bsp: hugo
>
>ausserdem ist eine variable mit folgendem wert vorhanden:
>$active_user_gebdat = '1980-05-03'
>
>In einer Abfrage möchte ich nun alle user meiner tabelle heraussuchen,
>die maximal +- 5 Jahre von meinem $active_user_gebdat entfernt sind.
>
>Dies versuche ich mit folgender Abfrage:
>SELECT name FROM tabelle WHERE 'YEAR(gebdat)' -
>'YEAR($active_user_gebdat)' >= 5 AND 'YEAR($active_user_gebdat)' -
>'YEAR(gebdat)' <= 5
>
>Wo liegt mein Denkfehler??? Oder ist der Ansatz der falsche.
>
>Danke für Denkanstösse
>Alex
>
>
>--
>Deutsche MySQL Mailingliste
>Listenarchive: http://lists.mysql.com/mysql-de
>Abbestellen (unsubscribe):
>http://lists.mysql.com/mysql-de?unsub=1
>
>
>
>
>
>
>
>
>
>