2016-11-03 1 views
2
$em = $this->getEntityManager(); 
    $query = $em->createQuery(
     "SELECT b 
     FROM AppBundle:Booking b 
     AND b.checkin IS NULL 
     AND b.bookingDate=CURRENT_DATE()" 
    ); 

Ich möchte die Buchung von heute sehen, aber auch ich möchte die Zeit der Buchung in bookindDate haben. Also wie Vergleich Datetime BookingDate mit CURRENT_DATE()?Wie Vergleich Datetime mit CURRENT_DATE() von DQL

+0

wie ist das Doktrinfeld 'bookingDate' definiert? – Matteo

+0

datetime (ex: 2010-04-12 06:01:01) – NicolaPez

+0

Unter der Annahme, dass bookingData eine DateTime-Spalte ist, sollte AND DATE (b.bookingDate) = CURRENT_DATE() ausreichen. – Cerad

Antwort

0
$em = $this->getEntityManager(); 
$query = $em->createQuery(
     "SELECT b 
     FROM AppBundle:Booking b 
     AND b.checkin IS NULL 
     AND b.bookingDate >= CURRENT_DATE() 
     AND b.bookingDate <= CURRENT_DATE()+1" 
    ); 
verwenden können

das funktioniert für mich auch zu einfach;)

1

können Sie versuchen, die folgenden DQL-Abfrage:

SELECT b 
     FROM AppBundle:Booking b 
     AND b.checkin IS NULL 
     AND b.bookingDate BETWEEN CURRENT_DATE() AND CURRENT_DATE() 

prüfen here die doc für ZWISCHEN Doctrine2 Funktion

Hope this Hilfe

+0

das funktioniert nicht für mich. Vielleicht ist das aktuelle Datum von Becose ein Datum und eine BuchungDate ein Datetime? Ich denke, der Weg ist Change Format BookingDate, aber ich weiß nicht, wie das geht. – NicolaPez

0

yo

$date = new DateTime(); 
$em = $this->getEntityManager(); 
    $query = $em->createQuery(
     "SELECT b 
     FROM AppBundle:Booking b 
     AND b.checkin IS NULL 
     AND b.bookingDate=". $date->format('Y-m-d') 
    ); 
+0

Welches dateTime-Objekt muss ich dafür verwenden? – NicolaPez