Datumabfrage Mit der Datenbank
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anwendung
array
bau
code
date
definition
ergebnis
ersteinmal
feld
gesuchte abfrage
gleichen tag
http
idee
minute
problem
sekunde
tag
unterscheiden
url
-
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! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Eventuell hilft dir die Funktion DATE() weiter…
-
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!! -
Die gesuchte Abfrage lautet in etwa so:
SELECT `id`, `timestamp` FROM `tabelle` WHERE DATE(`timestamp`) = '2012-12-07'
-
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 -
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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage