Ich benutze Symfony 2 und Doctrine. In meiner Datenbank MySQL habe ich ein Feld vom Typ DateTime
. In meiner Repository-Datei möchte ich mit QueryBuilder
in dieser Tabelle nur nach Datum (ohne Zeit) und nur nach Zeit (ohne Datum) in meiner Where
-Klausel suchen.
Wie kann ich das erkennen?
Sie können die Funktion DATE () in Doctrine2 erweitern und registrieren, um mit DQL zu spielen. Überprüfen Sie diese Lösung .
Wenn Sie nun die Doktrin2 nicht erweitern wollen, hier meine Lösungen:
Suche basierend auf Datum:
Sie können das Intervall zwischen dem Datum des Beginns eines Tages und dem Datum seines Endes abrufen. Ich antworte bereits hier .
Dies ist die sauberste Lösung für das Datum (glaube ich)!
Eine weitere einfache Lösung besteht nun darin, ein Datetime-Feld als Zeichenfolge mit dem LIKE -Operator zu vergleichen, damit Sie das auch tun können:
%Vor%Suche basierend auf der Stunde:
Ich kenne keine andere Lösung mit DQL als den Vergleich als String (Es sei denn, Sie erweitern Doktrin mit DATE), hier der Code:
%Vor%Zur Erinnerung: " _ " (Unterstrich) bedeutet 1 Zeichen (und ein beliebiges Zeichen!).
Wählen Sie Ihre Lösung;)