DATETIME in Datum umwandeln und mit Variable vergleichen

userjules

Mitglied
Hallo zusammen,

ich stehe total auf dem Schlauch was folgende Aufgabenstellung betrifft und hoffe bei der Lösung auf eure Hilfe.
In einer MySQL Datenbank befindet sich eine Tabelle mit Terminen, welche unter anderem das Feld datum_von im Format JJJJ-MM-TT SS:MM:SS enthält, also zum Beispiel 2011-08-01 09:00:00
Ich brauche für die Ausgabe alle Daten des Feldes (Datum und Uhrzeit) aber bei der Abfrage vergleiche ich mit dem angegebenen Datum.

Die beiden folgenden Abfragevarianten führen zu einem leeren Ergebnis, obwohl definitiv ein entsrechender Termin eingetragen ist.

1.
PHP:
$sql="SELECT id, datum_von, datum_bis, mitarbeiter_id, termintyp FROM termin WHERE LEFT('datum_von',10) = $date AND mitarbeiter_id = '481' ORDER BY datum_von";
2.
PHP:
$sql="SELECT id, datum_von, datum_bis, mitarbeiter_id, termintyp FROM termin WHERE mitarbeiter_id = '481' AND SUBSTRING(datum_von,1,10) = $date ORDER BY datum_von";

Wenn ich aber die Abfrage zur Prüfung unmissverständlich formuliere ...
PHP:
$sql="SELECT id, datum_von, datum_bis, mitarbeiter_id, termintyp FROM termin WHERE mitarbeiter_id = '481' AND datum_von = '$date 09:00' ORDER BY datum_von";
... funktioniert es. Natürlich kann ich es so nicht machen, da die Uhrzeit ja nicht bekannt ist.

Hat jemand 'ne Idee was ich falsch mache, oder wie ich's anders machen kann ?

Vielen Dank im Voraus !
 
Vielen Dank für die Antwort.

Das entspricht ja dann...
PHP:
$sql="SELECT id, datum_von, datum_bis, mitarbeiter_id, termintyp FROM termin WHERE DATE(datum_von) = $date AND mitarbeiter_id = '481' ORDER BY datum_von";
... in meiner Abfrage. Liefert leider 'nen Fehler im SQL Kommando. Da scheint noch etwas nicht zu stimmen.
 
Ich habe nun auch noch die Variante ...
PHP:
$sql="SELECT id, datum_von, datum_bis, mitarbeiter_id, termintyp FROM termin WHERE DATE_FORMAT(datum_von, '%Y.%m.%d') = '$date' AND mitarbeiter_id = '481' ORDER BY datum_von";
... ausprobiert.
Die liefert zwar keinen Fehler, aber auch kein Ergebnis.
Kann es vielleicht sein, dass MySQL (der Server) das Datum anders interpretiert und mit dem gegebenen 2011-08-01 ($date) nichts anfangen kann ?
Ich wäre wirklich sehr dankbar für einen entscheidenden Tipp, da mich dieses Problem nun schon seit Tagen aufhält.
Vielen Dank !
 
Manchmal ist diese Community hier echt beschissen. Man bekommt den Eindruck das einige Mitglieder einfach keinen Bock haben auf Fragen zu antworten, die nicht 'ihrem Niveau' entsprechen. Schade !
Ich habe hier schon oft gute und hilfreiche Antworten bekommen, aber das ist schon ne Weile her.
Wie dem auch sei - mein Problem konnte ich inzwischen selber lösen und falls es jemanden interessiert, die Lösung lautet:
PHP:
$sql="SELECT id, datum_von, datum_bis, mitarbeiter_id, termintyp FROM termin WHERE DATE_FORMAT(datum_von, '%Y-%m-%d') = '$date' AND mitarbeiter_id = '481' ORDER BY datum_von";

Danke euch ******
 
Zurück