Announcement

Collapse
No announcement yet.

Brauche dringend einen Tip für mysql Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Brauche dringend einen Tip für mysql Abfrage

    Hallo Forum,
    ich suche schon eine ganze Zeit nach einer Abfrage aus einer mysql DB und habe nichts gefunden.
    Ich möchte aus einer Tabelle in der sich Geburtsdaten als timestamp befinden ,die Einträge herausfiltern, die das Alter zwischen z.b. 7-14 Jahre haben.
    Das ist mein bisheriger Stand und ich bekomme keine Ausgabe:
    Code:
    SELECT * FROM tabelle WHERE pid IN (505)
    AND tabelle.deleted=0 AND tabelle.hidden=0 AND FLOOR(((CURDATE() + 0) - DATE_FORMAT(`birthday`, "%Y%m%d")) / 10000)
    BETWEEN 7 AND 14
    Kann mir jemand einen Tip geben?

    Danke

  • #2
    Du willst doch Alle Datensätze finden, deren Geburtstag zwischen zwei Terminen liegt?

    http://dev.mysql.com/doc/refman/5.1/...functions.html

    da hast du aber schon nachgeschlagen?

    Oder verstehe ich den problem nicht?

    Comment


    • #3
      Doch, da habe ich schon nachgelesen.
      Bekomme das irgendwie nicht gebacken.
      Ich habe Probleme mit den daten vor 1970.
      Da bekomme ich keine Ausgabe.
      Alles was nach 1970 vorhanden ist, bekomme ich als Ausgabe.

      Comment


      • #4
        die sind aber schon deutlich über 14

        ...ich kenn die Daten in deiner Tabelle jetzt natürlich nicht ... aber wenn zwischendurch in die Sekunden nach 1.1.1970 (Unixzeit) konvertiert wird ist das schon logisch ( die integerwerte sekunen Seit 1.1.1970... lassen sich ja prima vergleichen) kannst aber auch yyyymmdd nehmen und auch super vergleichen... hoffe niemand ist vor dem Jahr 1000 geboren?

        Sollte aber doch eigentlich kein Problem sein alles zwischen den Terminen zu erwischen?

        ..oder ist das auch eine Hausaufgabe?

        Comment


        • #5
          In der Ausgangsfrage war es nur ein Beispiel mit dem alter von 7-14
          Wie gesagt, das klappt ja auch alles.
          Deine letzte Antwort kann ich irgendwie nicht umsetzen.
          Die Zeitstempel in der Tabelle haben ein negatives Vorzeichen.
          Somit bekomme ich mit der derzeitigen Abfrage keine Ergebnisse.
          Wie muß die Abfrage jetzt aussehen?

          Comment


          • #6
            Ich glaub wir reden aneinander vorbei ... deshalb auch die Frage nach der Hausaufgabe? Hast du irgendwelche Einschränkungen was du benutzen darfst oder wie du es lösen musst?

            Ich würd halt ganz dumm mit den Datumswerten in die Abfrage gehen und gut...
            http://dev.mysql.com/doc/refman/5.1/de/using-date.html

            ist das eigentliche Problem den Richtigen Geburtstag für die Abfrage zu ermitteln?

            Comment


            • #7
              Also, es ist keine Hausaufgabe.
              Der Lösungsweg ist sch egal, hauptsache ich bekomme ein Ergebnis.
              der Verein für den ich eine Extension für typo erstell habe, möchte eine Ausgabe aller Mitglieder im Alter von 7-14, 15-18,19-25,26-40,41-60,60+
              haben.
              In der Tabelle stehen die Geburtsdaten drin, z.B.-100054800, -271299600,579132000

              Und ich benötige eine Abfrage, die mir jetzt die Mitgleider ausgibt, die z.B. das Geburtsdatum -100054800 oder -271299600 haben.
              Das sind nämlich zwei Mitglieder, die vor 1970 geboren sind.

              Hast Du da eine Lösung?
              Am besten gleich reintippen, ohne daß ich lange suchen muß. Es eilt etwas.

              Comment


              • #8
                Auch wenn ich gerade etwas gelaen bin (hat nix mit dir zu tun - denke das wird hier wohl nicht mein Forum wenn's so weiter geht)...

                gehe ich mal davon aus, dass das halt tatsächlich Unix-timstamps sind, also sekunden relativ zum Stichtag. Hast du den Wert kannst du prima vergleichen.Ganz banal mit <, > usw...
                Du willst also eigenlich jetzt eine Funktion, die die negativen timestamps rausspukt so wie mysql sie da verbastelt hat...

                hier hatte einer das geliche Problem..

                http://phpforum.de/archiv_29380_Time..._anzeigen.html

                hab das nicht geprüft...habe bitte Verständnis, wenn ich mir hier keine Testdaten generiere und Lösungen getestet abliefere - von irgendwas muss man ja noch leben!

                Comment


                • #9
                  Hab immer noch keine Lösung

                  Comment


                  • #10
                    Ist denn hier kein mysql Experte, der mir helfen kann??

                    Ich benutze diese Abfrage und bekomme keine Ausgabe
                    SELECT members.* FROM members WHERE pid IN (505)
                    AND members.deleted=0 AND members.hidden=0 AND FLOOR(((CURDATE() + 0) - DATE_ADD("1970-01-01",INTERVAL birthday SECOND)) / 10000 ) >41


                    Benutze Ich diese Abfrage
                    select FLOOR(((CURDATE() + 0) - DATE_ADD("1970-01-01",INTERVAL birthday SECOND)) / 10000 ) from ....

                    bekomme ich negative Werte

                    Ist klar, daß diese Werte dann nicht größer als eine positive Zahl sein kann.
                    Aber wie komme ich dahin?

                    Comment


                    • #11
                      Sorry - ich verstehe echt immer weniger was du da machst, noch wie man helfen könnte... in der mysql Referenz steht ja alles

                      Comment

                      Working...
                      X