[SQL allgemein] Alter suche bis XX Jahren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [SQL allgemein] Alter suche bis XX Jahren

    Ich habe folgendes Problem, eine MySQL Abfrage die mir alle User bis zum 29 Lebensjahr anzeigen soll, das Script zeigt aber nur User an die 28 Sind.

    PHP-Code:
    SELECT FROM bb1_users WHERE to_days(birthday)>to_days(DATE_SUB(now(), interval 29 YEAR)) ORDER BY birthdayusername 
    Worann kann das liegen?
    Die Geburtdaten werden in MySQL: DATE (0000-00-00) gespeichert

  • #2
    Häufiger Fehler: du suchst bis zum letzten Tag wo man 28 ist, aber der erst Tag vom 29 nicht. Also in dem Statement noch irgendwie "29 + 1 Tag" mit einbauen...

    Kommentar


    • #3
      wozu to_days?

      nimm gebutstag >= DATE_SUB(...)

      Kommentar


      • #4
        er muss bis 30 jahre zählen. wenn man 29 Jahre alt ist, ist man im 30. Lebensjahr, vor dem 30. Geburtstag. Aus der Beschreibung 29 / 28 hätte frager selber draufstossen können.

        Kommentar


        • #5
          also z.b 30 jahre -1 tag `?

          Kommentar


          • #6
            @all:
            eine MySQL Abfrage die mir alle User bis zum 29 Lebensjahr anzeigen soll,
            @threadstarter, mach bitte klar, welche du wirklich anzeigen willst.

            Kommentar


            • #7
              das ist ja fast die gleiche frage ob das glas halb leer oder halb voll ist

              alle user die auch 29 jahre alt sind.

              Kommentar


              • #8
                Also alle user, die < 30 Jahre alt sind.

                also geburtstag > heutiges datum - 30 Jahre.

                Kommentar


                • #9
                  PHP-Code:
                  SELECT FROM User WHERE 
                      to_days
                  (birthday)>to_days(DATE_SUB(now(), interval 30 YEAR)) 
                          
                  ORDER BY birthdayusername 
                  Soweit geht das schon, aber wenn ich jetzt die Abfrage mit reinmachen will das er nur die spieler zwischen 23 und 30 jahren anzeigen will??

                  Müsste eigentlich so ausschauen:

                  PHP-Code:
                  SELECT FROM User WHERE 
                      to_days
                  (birthday)>to_days(DATE_SUB(now(), interval 30 YEAR))
                          AND
                      
                  to_days(birthday)< to_days(DATE_SUB(now(), interval 23 YEAR))  
                          
                  ORDER BY birthdayusername 
                  Das geht aber leider nicht

                  Kommentar


                  • #10
                    Geht nicht ist KEINE Problembeschreibung. Einen Blick in den Code wagt man dann aus Prinzip nicht.

                    Kommentar


                    • #11
                      Ein Fehler kommt nicht, es wird nichts angezeigt. als ob er nichts findet

                      Kommentar


                      • #12
                        lass dir mal

                        to_days(DATE_SUB(now(), interval 23 YEAR)
                        to_days(DATE_SUB(now(), interval 30 YEAR)
                        to_days(birthday)
                        ausgeben.

                        gibt es daten, die den werten entsprechen?

                        warum du to_days nutzt, weiß ich immer noch nocht. aber wenns spaß macht...
                        Zuletzt geändert von TobiaZ; 25.09.2006, 16:59.

                        Kommentar


                        • #13
                          hast du eine error reporting eingabaut?

                          lass dir den timestamp ausgeben, und ziehe 30 jahre ab.
                          lasse dir dann alle anzeigen, die < das ergebnis sind.
                          Webdesign und Webentwicklung - Plunix.de

                          Kommentar

                          Lädt...
                          X