Datum auf ende des Tages

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

  • Datum auf ende des Tages

    Hi

    Ich suche eine Möglichkeit, dass Datum auf ende des Tages zu legen.

    Ich habe folgendes:
    PHP-Code:
    $timestamp time();
    // Das Feld time wurde ebenfalls mit time() aus php gefüllt
    $sql "SELECT timeid, time FROM TestTabelle WHERE time <= '".$timestamp."'"
    Soweit so gut. Aber kann ich das ganze auf Tage prüfen?

    Also das er mir nicht den gesamten timestamp prüft, sondern nur das Datum.
    Sagen wir wir hätten folgende Zeiten:
    $timestamp wäre 01.11.2008 09.35 Uhr morgends
    time wäre 01.11.2008 10.35 Uhr morgends

    Nun hätte ich den Datenbankeintrag trotzdem gerne, da es noch am selben Tag ist.

    Quasi das er prüft time <= (der Tag aus $timestamp 01.11.2008 ohne zeit)

    Danke schonmal für eure Hilfe.

    Gruss

    Olli

  • #2
    Quasi das er.... prüft .... ohne zeit
    Wieso verwendest du ein Format mit Zeit, wenn du doch gar keine Zeit brauchst?
    Wieso verwendest du eine DB, wenn du ihr die Möglichkeit nehmen willst einen optimalen Index aufzubauen?

    Bist du mit den im DBMS eingebauten Zeit und Datums Funktionen/Datentypen vertraut?
    Nein? Nachholen!!
    Wir werden alle sterben

    Kommentar


    • #3
      Hallo,

      ich habe jetzt noch nicht verstanden, ob Du Dein Vorhaben beim Auslesen der Datensätze realisieren möchtest oder vor dem eigentlichen Datenbankeintrag? Oo

      Grundsätzlich hast Du zwei Möglichkeiten: Datums- und Zeitfunktionen von MySQL und mktime().

      ... sofern ich Dein problem richtig verstanden habe ...
      MM Newmedia | MeinBlog

      Kommentar


      • #4
        Hi

        Ich kenne die Zeitformate die mysql bietet ja. Ich benötige jedoch allgemein time(), da ich für sämtliche Funktionen aus diesem Feld mit time() arbeite. Ich benötige es bei einer einzigen Abfrage. Daher suche ich entsprechend auch eine Möglichkeit.

        Ich hatte mal etwas, weiss aber leider nicht mehr wo es war oder wie der aufbau war.

        Gruss

        Olli

        Kommentar


        • #5
          Hi ezkimo

          Danke für deine Antwort.

          Die Datums- und Zeitfunktionen von MySQL kenne ich soweit. Mein Problem liegt darin, wie ich in mysql den Tag vergleichen kann. Mittels date() kann ich den timestamp ja beliebig formatieren, auch für einen in mysql konformen. Aber wie bekomme ich das Feld time (was ja auch mit time())gefüllt wurde in das richtige format. Ggf etwas mit FROM_UNIXTIME. Aber bin da leider noch nicht weiter gekommen.

          Gruss

          Olli
          Zuletzt geändert von Olli4; 04.11.2008, 13:06.

          Kommentar


          • #6
            Wenn du die Funktionen doch kennst, warum wendest du sie nicht an?

            z.B. so wie hier:
            PHP-Code:
            // gib mich alle von Heute -----------
            $sql "  SELECT timeid, time FROM TestTabelle
                      WHERE DATE(FROM_UNIXTIME(time)) = CURDATE()"
            ;


            //----------------
            $timestamp time(); // beliebiger Timestamp
            $sql "  SELECT timeid, time FROM TestTabelle
                      WHERE DATE(FROM_UNIXTIME(time)) = DATE(FROM_UNIXTIME(
            $timestamp))"
            So!
            Und wie du siehst, MÜSSEN die Spaltendaten VOR dem Test umgewandelt werden. Und das bei jeder Abfrage für ALLE Datensätze. Ein evl. definierter Index hilft da erstaunlich wenig. Also ein Performancetechnischer Alptraum. EXPLAIN, wird dir das auch zeigen.
            Zuletzt geändert von combie; 04.11.2008, 13:55.
            Wir werden alle sterben

            Kommentar


            • #7
              Danke. Da stand ich wohl aufm schlauch.

              Gruss

              olli

              Kommentar

              Lädt...
              X