1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Zeitraumabfrage mit Timestamp

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Flew, 02.07.07.

  1. Flew

    Flew Gast

    Hallo allerseits!

    Folgendes Prob:
    mysql-Tabelle mit Spalte "date" (Typ = timestamp -> zb. 2007-02-09 15:40:21). nun erhalte ich per php zwei werte im format yyyymmtt und möchte diese mit der Spalte "date" vegleichen. Der 1. Wert ist das Startdatum, der zweite das Enddatum. Das Resultat soll die Werte in diesem Zeitraum auflisten Nun hab ich das so versucht:

    $query = "SELECT DATE_FORMAT(date, '%Y%m%d') as Datum,name FROM kontakt WHERE Datum > '".$startdatum."' AND Datum < '".$enddatum."'";

    Leider haut das nicht wirklich hin & ich bekomme eine mysql_query Fehlermeldung...Kann mir jem sagen wie ich dies lösen kann?

    Besten Dank & Gruss
     
  2. Flew

    Flew Gast

    hmm mein ansatz bis zum mittag....

    $startdatum = date("Ymd",mktime(0,0,0,intval($_GET["v_monat"]),intval($_GET["v_tag"]),intval($_GET["v_jahr"])));

    $enddatum = date("Ymd",mktime(0,0,0,intval($_GET["b_monat"]),intval($_GET["b_tag"]),intval($_GET["b_jahr"])));

    $query = "SELECT *,DATE_FORMAT(date, '%Y%m%d') as Datum FROM kontakt WHERE Datum > '".$startdatum."' AND Datum < '".$enddatum."'";
     
  3. PressureDrop

    PressureDrop Jamba

    Dabei seit:
    07.12.06
    Beiträge:
    58
    Entweder normalisierst Du den Timestamp mit DATE(...) oder Du wandelst das Datum mit TIMESTAMP(...) um.
     
  4. Flew

    Flew Gast

    danke für deine antwort. jo dieser ansatz scheint mir logisch. welchen befehl kann ich dazu verwenden? hab mal umgeschaut und variant_date_to_timestamp gefunden... funktioniert jedoch nicht...Am schönsten wäre es natürlich gleich in der Abfrage:

    $query = "SELECT *,DATE_FORMAT(date, '%Y%m%d') as Datum FROM kontakt WHERE Datum >= '".$startdatum."' AND Datum <= '".$enddatum."'";

    klarzustellen...

    vielleicht hat mir noch wer ein input dazu?

    besten dank für eure hilfe!
     
  5. Flew

    Flew Gast

    habs rausgefunden....kleiner flüchtigkeitsfehler meinerseits der mich nun 3h gekostet hat ;)

    -->

    $startdatum = date("Ymd",mktime(0,0,0,intval($_GET["v_monat"]),intval($_GET["v_tag"]),intval($_GET["v_jahr"])));
    $enddatum = date("Ymd",mktime(0,0,0,intval($_GET["b_monat"]),intval($_GET["b_tag"]),intval($_GET["b_jahr"])));

    $query = "SELECT *,DATE_FORMAT(date, '%Y%m%d') as datum FROM kontakt WHERE date >= '".$startdatum."' AND date <= '".$enddatum."'";
     
  6. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Alternativ:
    Code:
    $sql = "
    SELECT
      *, 
      DATE_FORMAT(date, '%Y%m%d') AS datum,
      UNIX_TIMESTAMP(date) AS epoch_datum
    FROM
      kontakt
    WHERE
      date
    BETWEEN
      '" . mktime(...) . "' AND '" . mktime(...) . "'
    ORDER BY date ASC";
    
     
  7. Irgendein Held

    Irgendein Held Oberösterreichischer Brünerling

    Dabei seit:
    17.06.07
    Beiträge:
    714
    Da hat einer seine Hausaufgaben gemacht :p (nichts für ungut)

    Man kann mehr mit SQL machen als viele annehmen. Spart viel rumgefrickel mit PHP!
     

Diese Seite empfehlen