Skip to content

Instantly share code, notes, and snippets.

@jwage
Created February 11, 2011 18:43
Show Gist options
  • Save jwage/822802 to your computer and use it in GitHub Desktop.
Save jwage/822802 to your computer and use it in GitHub Desktop.
public function findByThisMonthToTodayOrderCount(\DateTime $firstDayOfMonth, \DateTime $currentDatetime)
{
$currentDatetimeString = $currentDatetime->format('Y-m-d');
$firstDayOfMonthString = $firstDayOfMonth->format('Y-m-d');
/*
$qb = $this->createQueryBuilder();
$qb->add('select', 'COUNT(*) as targetAmount, orders.created as targetMonth');
$qb->add('from', self::ORDER_CLASS.' as orders');
$where = $qb->expr()->andx(
$qb->expr()->gte('orders.createdAt', ':firstDayOfMonthString'),
$qb->expr()->lt('orders.createdAt', ':currentDatetimeString')
);
$qb->add('where', $where);
$qb->add('groupBy', "MONTH(orders.createdAt)");
$qb->setParameter('firstDayOfMonthString', $firstDayOfMonthString);
$qb->setParameter('currentDatetimeString', $currentDatetimeString);
*/
$queryString = 'SELECT COUNT(*)';
$queryString .= ' FROM orders';
$queryString .= ' WHERE (';
$queryString .= ' orders.createdAt >= "'.$firstDayOfMonthString.'"';
$queryString .= ' AND';
$queryString .= ' orders.createdAt < "'.$currentDatetimeString.'"';
$queryString .= ' )';
$queryString .= ' GROUP BY MONTH(orders.createdAt)';
$result = $this->_em
->getConnection()
->executeQuery($queryString)
->fetchColumn();
return isset($result) ? $result : 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment