kostenloser Webspace werbefrei: lima-city


Datumabfrage Mit der Datenbank

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Hi, der Titel ist etwas umständlich aber ich weiss nicht genau wie ich mein Problem ausdrücken soll.

    Ich habe in einer DB einen Timestamp. Ich habe in einer Variable ebenfalls einen Timestamp. Ich möchte jetzt alle Felder aus der DB, bei denen die Timestamps am gleichen Tag sind. (Also spielt nur Tag, Monat Jahr eine Rolle, Stunde, Minute, Sekunde unterscheiden sich zwar das soll aber ausser Acht gelassen werden)

    Das ganze möchte ich am besten in einer einfachen Query haben.

    Hat jeman eine Idee?
    Liebe Grüße und vielen Dank!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Eventuell hilft dir die Funktion DATE() weiter…
  4. Wenn ich dich richtig verstanden habe, willst du aus einer DB alle einträge holen, die den selben Tag wie eine variable haben (vom timestamp her)?

    <?php
    	$timestamp = time();
    	$id = array();
    	$query = mysql_query("SELECT `id`,`timestamp` FROM `tbl`");
    	while($row = mysql_fetch_object($query)){
    		$dbTimestamp = $row->timestamp;
    		$dbDate = date("d.m.Y",$dbTimestamp);
    		$date = date("d.m.Y",$timestamp);
    		if($dbDate == $date){
    			$id[] = $row->id;
    		}
    	}
    	$i = 0;
    	$sql = "SELECT * FROM `tbl` WHERE ";
    	while($i<count($id)){
    		$sql .= "`id`='".$id[$i]."'";
    		$i++;
    		if($i<count($id)){
    			$sql .= " AND ";
    		}
    	}
    	$query = mysql_query($sql);
    	//in $query sollten nun alle Einträge sein, deren Datum mit dem Serverdatum identisch ist - timestamp könnte man ja variabel ändern ;-)
    ?>


    Ungetestet!!
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Die gesuchte Abfrage lautet in etwa so:
    SELECT `id`, `timestamp` FROM `tabelle` WHERE DATE(`timestamp`) = '2012-12-07'
  6. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Vielen Dank ersteinmal,
    leider klappt das so nicht ganz. Ich möchte das auf jeden Fall in der MySQL Abfrage drin haben, weil sonst unnötig viele Datensätze geladen werden.

    Allerdings klappt das mit DAte nicht so ganz und auch die Definition hat mich eher verwirrt. Könntest du mir die Funktionsweise und Anwendung nochmal erläutern, bitte?

    Ich habe noch eine andere Idee gehabt, weiss aber nicht ob das so logisch korrekt ist:
    Ich habe einen timestamp $timestamp mitten am Tag. Darus bau ich nun den Timestamp zum Tagesanfang und zum Ende (min / Max) und selectiere eben überall wo der Timestamp in der Datenbank (Feld heisst übrigens date) > als min und < als max ist.

    Min und Max hätte ich so berechnet:
    $min_timestamp = $timestamp = mktime(0,0,0,date('m', $timestamp),date('d', $timestamp), date('Y', $timestamp)); 
    $min_timestamp = $timestamp = mktime(23,59,59,date('m', $timestamp),date('d', $timestamp), date('Y', $timestamp));


    Geht das?

    MFG

    Beitrag zuletzt geändert: 8.12.2012 0:09:32 von programtools
  7. SELECT * FROM `tbl` WHERE DATE( FROM_UNIXTIME( `timestamp` ) ) = CURRENT_DATE( )


    '*' sollte man nicht, aber es kommt auch darauf an, welche Felder Du als Ergebnis erwartest.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!