Suche nur nach Zeit im DateTime-Feld in Symfony2 und Doctrine

8

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?

    
JohnDoe66 17.06.2013, 17:21
quelle

2 Antworten

16

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;)

    
Sybio 17.06.2013, 18:07
quelle
3

Teil meines Codes, der für mich funktioniert:

%Vor%     
Lackeeee 15.04.2015 09:37
quelle