verzwickte Datumsabfrage...

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

  • verzwickte Datumsabfrage...

    Hallo!
    Arbeite mich neu in die Thematik MySQL und PHP hinein. Bin kein DAU, aber trotz stundenlangem googlen finde ich keinen passenden Tip.
    Eigentlich nur ein kleines Problemchen für euch, denke ich

    //Variablen festlegen
    $start = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
    $end = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);

    //sql-query erstellen
    $query = "SELECT * FROM `Versuch` WHERE ((`Datum` BETWEEN ($start) AND ($end)) AND test=1) ORDER BY `Datum` DESC";

    Habe schon mit Getdate rum experimentiert, bekomme es aber nicht hin. Abfrage soll lauten:

    Spucke mir alle Ergebnisse aus, wo das Datum zwischen einem Monat vor und einem Jahr nach Heute liegt und wo in der Spalte Test=1 vorhanden ist.

    Für eure Hilfe bin ich sehr dankbar...

    Liebe Grüsse

    Maik

  • #2
    Hallo,

    was hast denn in deiner Tabelle für einen Datentyp für das Feld 'Datum'?? Timestamp?? Dann geht's nämlich so nicht, weil Timestamp in Mysql ganz anders dargestellt wird wie der den du in PHP mit mktime() erstellst.

    mktime() -> gibt dir die Anzahl der vergangenen Sekunden seit 1.1.1970 zurück

    timestamp in Mysql zeigt dir jedoch folgendes Format: zB. 20050407095558 (also Jahr, Monat, Tag... usw. aneinandergereiht)
    Zuletzt geändert von Quetschi; 07.04.2005, 14:43.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      .....

      Als Date, bietet sich ja an... oder soll ich da was anderes nehmen?

      Kommentar


      • #4
        Re: .....

        Original geschrieben von Maik1976
        Als Date, bietet sich ja an... oder soll ich da was anderes nehmen?
        im mySQL-Datentyp DATE steht für heute 2005-04-07, bist du sicher, dass du mit deinem mktime einen ähnlichen Wert bekommst?
        ich nicht...
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          date ist kein unix-timestamp ... lies dich mal in die datumsfunktionen von mysql ein: http://dev.mysql.com/doc/mysql/de/da...functions.html
          Kissolino.com

          Kommentar


          • #6
            würd ich nicht, aber du kannst halt nicht mit dem Unixtimestamp abfragen...

            sondern so:

            $start = "2005-06-15"; (Jahr-Monat-Tag);
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              PHP <-> MYSQL DatetimeConversion


              hab da irgendwann mal ne Klasse geschrieben, die sollte helfen :
              Simple Date Time Object
              chansel0049
              ----------------------------------------------------
              if you've reached the bottomline - dig further!
              Übersetzer gesucht? http://www.babelport.com

              Kommentar

              Lädt...
              X