MYSQL Probleme bzw. Frage

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

  • MYSQL Probleme bzw. Frage

    Hallo, nicht wundern wenn die Frage bescheuert klingt aber ich bin n noob und jeder hat ja mal klein angefangen... ;(

    Also denke ihr könnt mir helfen.
    Folgendes problem bei MySQL:
    Ich habe vor Daten aus einer tabelle in der die Geburtsdaten verschiedener Personen stehen auszulesen mit hilfe eines Formulars. Das bedeutet ich möchte z.B. das er mir nur die im Zeitraum von z.B. 13.01.2005 bis 20.02.2005 ausspuckt. kenne auch schon die Funktion between allerdings zeigt er mir nichts an, da ja die Geburtsdaten 1987 etc sind... gibt es bei between auch ne Platzhalterfunktion oder wie kann man sowas lösen?
    Vertrau auf eure Hilfe, Danke
    nooby ist besser als gar nicht angangen ;D

  • #2
    wenn ich dich richtig verstehe, solltest du dir mal die date-Funktionen von php oder mySQL anschauen...

    Kommentar


    • #3
      Stimmt schon, habe ich auch, aber das hilft mir nicht weiter, habe im MYSQL Query schon mit date_format(datum '2005-%m-%d') AS datumb formatiert. das problem ist jetzt allerdings das ich das ich das im WHERE Teil nicht benutzen darf, da es auf einen fehler läuft. und genau das ist die frage... muss ich das vorher irgendwie noch definieren oder geht das generell nicht? Bite helft mir

      Danke trotzdem schonmal
      nooby ist besser als gar nicht angangen ;D

      Kommentar


      • #4
        wenn ich dich richtig verstanden hab, willst du die geburtstage die kommen auslesen (wenn einer am 10.01.1974 geboren is soll deine abfrage zeigen das er am 10.01.06 32jahre wird oder?)

        naja versuchs doch so: lege für den tag, den monat, und das jahr ne extra spalte an und dann sind die abfragen ganz leicht

        Kommentar


        • #5
          Original geschrieben von hauke
          naja versuchs doch so: lege für den tag, den monat, und das jahr ne extra spalte an und dann sind die abfragen ganz leicht
          das ist unfug.


          datum als datumstyp belassen, und dann nur die relevanten teile abfragen - MONTH() und DAY(), oder aber über betrachtung nur eines teils der datums-"zeichenkette".
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            hmm... versteh leider nicht ganz wie du das meinst ;(

            das ich da nicht selber drauf gekommen bin das mit php zu machen... habs gestern dann versucht, aber wie kann ich sagen das die zu übergebenen Variablen ($von="2005-01-01" und $bis="2005-01-19") als Datum deklariert werden oder als solches angesehen werden oder wie kann ich mir dann den zwischenraum anzeigen lassen?
            if (Datumx =>$von AND <=$bis)?
            oder wie geht das?
            PLZ help
            nooby ist besser als gar nicht angangen ;D

            Kommentar


            • #7
              Bitte bitte gemeinschaft, helft mir doch ;((

              bin total verzweifelt

              Wenn ihr nicht genau versteht wie ich das meine dann fragt doch einfach nach, versuche es dann besser zu erleutern. Aber son kleiner tip in welcher richtung ich mich schlau machen muss wäre echt nett.

              Danke schonmal,
              Ess0r
              nooby ist besser als gar nicht angangen ;D

              Kommentar


              • #8
                Tipp: Aggregatfunktionen direkt in Where-Klausel verwenden, anstatt Alias

                btw: verschieb nach SQL

                Kommentar


                • #9
                  wie meist du das mit Aggregatfunktionen?

                  meine Ehemalige WHERE Funktion sah vorher so aus:

                  SELECT *, date_format(datum, 2005-%m-%d) AS datumx FROM Teilnehmer WHERE datumx between '$von' AND 'bis';

                  Aber dabei gibt er mir einen Fehler. Deswegen bin ich zum trugschluss gekommen, das es sein kann das er die AS funktion nicht schon in der WHERE Klausel verwenden kann?

                  HELP
                  nooby ist besser als gar nicht angangen ;D

                  Kommentar


                  • #10
                    dazu nur: denn

                    - as ist keine Funktion sondern nur ein Schlüsselwort, wobei abzuraten ist, as zu verwenden, d.h. einfach weglassen,
                    - und lese nochmals, deutlicher kann ich nicht formulieren
                    ... direkt in Where-Klausel verwenden, anstatt Alias

                    Kommentar


                    • #11
                      aber das geht doch wiederrum nicht ;(
                      wenn ich das so schreibe

                      SELECT * FROM Teilnehmer WHERE datum between '$von' AND 'bis';

                      gibt er mir garnichts aus, denn z.B.
                      $von="2005-01-01"
                      $bis="2005-02-16"

                      und die Geburtsdaten aus der Tabelle sind ja z.B.

                      1974-01-09

                      Dies wird also nicht angezeigt und genau das möchte ich ja erreichen.
                      Es tut mir leid wenn ich mich missverständlich ausdrücke, aber es ist nicht so einfach ;( Sorry
                      aber gibt es überhaupt eine lösung für mein Problem ?
                      nooby ist besser als gar nicht angangen ;D

                      Kommentar


                      • #12
                        uns was gibt er dir aus, wenn du einen zeitraum wählst in dem auch mal einer geboren wurde ????

                        Kommentar


                        • #13
                          nur mal eben zu klärung ....

                          1.willst du wissen wer in einem zeitraum geburtstag hat ???
                          z.b. den 32. oder
                          2.wer in dem zeitraum geboren wurde ???

                          gruss
                          iglo

                          Kommentar


                          • #14
                            Original geschrieben von ess0r
                            aber das geht doch wiederrum nicht ;(
                            wenn ich das so schreibe

                            SELECT * FROM Teilnehmer WHERE datum between '$von' AND 'bis';
                            seufz .... kein Wunder, denn du hast date_format garnicht angewendet ... wie wär's mit WHERE DATE_FORMAT(...) BETWEEN ...

                            Kommentar


                            • #15
                              sorry also ich bin dabei ein dokument zu erstellen auf dem zwei datenbanken abgefragt werden. Dabei sind 2 Datenbanken mit akuellen daten.
                              Das dokument besteht aus drei teilen:

                              Einsätze
                              Geburtstage
                              und Termine

                              Die Einsätze sind in einer datenbank und natürlich mit dem passenden datum versehrt. z.b. 2005-01-09
                              Dieser Teil funktioniert auch mit der Abfrage WHERE datum between '$von' AND '$bis'

                              Der zweite und dritte Teil stehen in einer gemeinsamen datenbank.
                              Der dritte teil termine funktioniert auch ohne Probleme da auch hier wieder akktuelle daten eine rolle spielen z.B. eine Trinken | 2005-01-18
                              auch hier funktioniert die WHERE Klausel.

                              Allerdings funktioniert dies nicht im zweiten Teil.
                              Auch ist richtig das ich mir zusätzlich das Alter ausrechnen lasse und mit ausgebe das bedeutet das ich das geburtsdatum auch auf jeden fall benötige. Meine Frage ist ob dies überhaupt möglich ist? Wenn nicht im WHERE Teil vielleicht mit PHP?

                              Danke erstmal für euere bisherigen bemühungen.
                              nooby ist besser als gar nicht angangen ;D

                              Kommentar

                              Lädt...
                              X