2017-09-27 5 views
1

Ich möchte Daten von einem bestimmten Datum zu einem anderen Datum abrufen. Die Sache ist, mein Datum in der Datenbank ist auf diese Weise formatiert: JJJJ-MM-TT hh: mm. Das Datum, das ich verwende, ist nur YYYY-mm-dd. dieseGlobbing mit symfony Doktrin

Ich habe versucht:

$leds = $em->createQueryBuilder() 
    ->select('l') 
    ->from('AppBundle:Lead', 'l') 
    ->where('l.created_at BETWEEN ":endDate*" AND ":startDate*"') 
    ->setParameter('endDate', $endDate) 
    ->setParameter('startDate', $startDate) 
    ->getQuery()->getResult(); 

Die letzte SQL-Anforderung ist

SELECT * FROM bar_contacts WHERE created_at BETWEEN "2015-11-30*" AND "2017-09-20*"; 

Antwort

0

versuchen diese

$leds = $em->createQueryBuilder() 
->select('l') 
->from('AppBundle:Lead', 'l') 
->where('l.created_at BETWEEN ":endDate*" AND ":startDate*"') 
->setParameter('endDate', $endDate." 23:59") 
->setParameter('startDate', $startDate." 00:00") 
->getQuery()->getResult(); 
+0

Ich habe ganz gleich, aber in der Tat auf der Linie '-> wo ('l.created_at BETWEEN ": endDate *" AND ": startDate *"') ', die Sterne sind der Fehler. Es gibt kein Globbing. –

+0

Die Idee ist, keine Sterne zu verwenden. Und wenn created_at ein tatsächliches Datetime-Feld ist, dann benutze einfach DATE (l.created_at) und lass die Datenbank sich darum kümmern. Sie müssen eine Doktrine-Erweiterung hinzufügen, um DATE zu verarbeiten. – Cerad

Verwandte Themen