Ankündigung

Einklappen
Keine Ankündigung bisher.

Datum innerhalb eines Zeitraumes finden

Einklappen

Neue Werbung 2019

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

  • Datum innerhalb eines Zeitraumes finden

    folgendes problem: ich speichere für einen veranstaltungskalender termine in einer mysql. für veranstaltungen, die über mehrere tage gehen, speichere ich ein anfangs- sowie ein enddatum.

    nun schreibe ich eine abfrage nach datum, soweit so gut.
    jetzt grübel ich, wie ich die sql abfrage gestalte, dass auch daten zwischen anfangs- und enddatum gefunden werden.

    ein beispiel:
    sagen wir, eine veranstaltung beginnt am 01.01.2004 und endet am 10.01.2004

    dann wird in der mysql gespeichert:

    startdatum: 2004-01-01
    enddatum: 2004-01-10

    das problem besteht jetzt darin, dass der termin natürlich auch gefunden werden soll, wenn beispielsweise nach dem 05.01.2004 oder dem 07.01.2004 gesucht wird (da zu diesem zeitpunkt die veranstaltung ja noch läuft)

    hat jemand ne lösung? ich such mir schon die halbe nacht die finger wund.

  • #2
    Re: Datum innerhalb eines Zeitraumes finden

    Zitat von pirre
    startdatum: 2004-01-01
    enddatum: 2004-01-10

    ... wenn beispielsweise nach dem 05.01.2004 oder dem 07.01.2004 gesucht wird (da zu diesem zeitpunkt die veranstaltung ja noch läuft)

    hat jemand ne lösung? ich such mir schon die halbe nacht die finger wund.
    Nur Mut. Das ist ja das Schöne am DATE Format...:
    Code:
    $datum = '2004-01-05';
    $sql = "SELECT * FROM tabelle WHERE '$datum' >= startdatum AND '$datum' <= enddatum";

    Kommentar


    • #3
      *patsch*
      NEIN! sollte es so einfach sein?
      werd ich nachher gleich mal ausprobieren. einstweilen schonmal vielen dank dafür!

      update: PHANTASTISCH!!! es funktioniert! besten dank nochmal!

      Kommentar


      • #4
        Noch ein Hinweis:

        Wenn Du deine Eintagesveranstaltungen auch mit Start- und Enddatum abspeicherst (gleiches Datum für beides) kannst Du Ein- und Mehrtagesveranstaltungen mit einer Abfrage suchen und anschließend ausgeben lassen. Die Handhabung wird dadurch sehr viel konfortabler.

        Solltest Du es eh schon so gelöst haben, dann entschuldige, wollte nicht besserwisserisch klingen, aber manchmal sieht man vor lauter Bäumen den Wald nicht (hab auch schon mehrfach die Erfahrung gemacht).

        Viel Erfolg

        Kommentar


        • #5
          Zitat von pirre
          update: PHANTASTISCH!!! es funktioniert! besten dank nochmal!
          Na klar. Ich hatte es vorher getestet.

          Beachte bitte auch den guten Hinweis von MWingenbach.

          Kommentar


          • #6
            ja, danke. den hab ich gesehen und werd ihn auch nutzen. daran hatte ich bisher noch nicht gedacht...

            wobei: macht das perfomancemäßig n großen unterschied, ob ich nur eine suchanweisung hab oder das ganze mit nem "OR" verbinde?

            Kommentar


            • #7
              Zitat von pirre
              wobei: macht das perfomancemäßig n großen unterschied, ob ich nur eine suchanweisung hab oder das ganze mit nem "OR" verbinde?
              Einfach testen:

              25.5. Wie kann ich die Performance zweier Befehle vergleichen?
              http://www.dclp-faq.de/q/q-code-performance.html

              Kommentar


              • #8
                sehr schön, test ich mal aus.

                btw: kennt jemand ne gute performante funktion/klasse, die das blättern á la google ermöglicht? hab da jetzt schon ein paar sachen zu gefunden, aber irgendwie is das alles nicht ganz so vernünftig. beispielsweise benötigt das tutorial von php-center 2 datenbankabfragen und ich frag mich, wieso das nicht in einer gehen sollte...

                thanx

                Kommentar


                • #9
                  Und wenn du schon die Performance testest, vergleiche mal das Statment mit dem or mit dem folgenden:
                  Code:
                  $sql = "SELECT * FROM tabelle WHERE $datum BETWEEN startdatum AND enddatum";
                  Gruss
                  L

                  Kommentar


                  • #10
                    Zitat von lazydog
                    Und wenn du schon die Performance testest, vergleiche mal das Statment mit dem or mit dem folgenden:
                    Code:
                    $sql = "SELECT * FROM tabelle WHERE $datum BETWEEN startdatum AND enddatum";
                    Test ist unnötig, weil lazydog mit seinem Hinweis natürlich Recht hat.

                    Kommentar


                    • #11
                      beinhaltet BETWEEN denn auch GLEICH?

                      Kommentar


                      • #12
                        Zitat von pirre
                        beinhaltet BETWEEN denn auch GLEICH?
                        http://dev.mysql.com/doc/mysql/de/Co...Operators.html

                        Kommentar


                        • #13
                          sehr schön.

                          Kommentar

                          Lädt...
                          X