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

Я хочу видеть бронирование сегодня, но также хочу иметь время бронирования в bookindDate. Итак, как сравнивать datetime bookingDate с CURRENT_DATE()?Как сравнить datetime с CURRENT_DATE() от DQL

+0

как определено поле доктрины 'bookingDate'? – Matteo

+0

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

+0

Предполагая, что bookingData является столбцом DateTime, тогда AND DATE (b.bookingDate) = CURRENT_DATE() должен сделать трюк. – Cerad

ответ

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

эта работа для меня слишком проста;)

1

Вы можете попробовать следующий DQL запрос:

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

Проверьте here док для МЕЖДУ функции doctrine2

Надеется, что это поможет

+0

Это не работает для меня. Может быть, если текущая дата - дата и бронирование, укажите дату и время? Я думаю, что это способ изменения формата бронирования, но не знаю, как это сделать. – NicolaPez

0

лет можно использовать

$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

, какой объект dateTime я должен использовать для этого? – NicolaPez