Проблема Codeignighter с групповым

Я пытаюсь сгруппировать свои данные в активной записи / codeignighter, чтобы иметь возможность подсчитать, сколько заказов в день отчета.

order_date поле является INT(11) который использует PHP - time() чтобы заполнить его.
Eсть created поле, но я еще не использовал это.

База данных выглядит так

(обратите внимание, что данные являются просто образцом, а дата_порядка не соответствует дате создания)

id | order_date | order_total |created....
---+------------+-------------+----------
0  | 1411780207 | 12.50       |2014-10-01 00:12:23 ....
1  | 1411750209 | 14.50       |2014-10-02 00:22:33....
1  | 1412780309 | 14.50       |2014-10-02 00:25:33....

Когда я использую свой код ниже, я получаю несколько записей за один и тот же день, потому что я думаю, что он также группируется по времени с точностью до секунды. Как бы я сгруппировал только по дате D / M / Y?

public function get_orders($limit = 5, $date_start ='01/01/2001',$date_end='01/12/2001')
{
//first convert the date format
$date_start = strtotime( $date_start );
$date_end = strtotime( $date_end );$this->db->select('order_date, count(*) as total_orders, sum(order_total) as orders_total');
$this->db->where('order_date >=', $date_start);
$this->db->where('order_date <=', $date_end);
$this->db->order_by('order_date desc', FALSE);
$this->db->group_by('order_date');
$this->db->limit($limit);

return $this->db->get('orders')->result();

}

1

Решение

Я думаю, что вы должны поступить следующим образом.

$secondOfDay = 86400; //second in a day
$this->db->group_by("CEILING(order_date/{$secondOfDay})");

Я думаю, что вы знаете, что я хочу упомянуть в блоке кода выше.

Извините за мой английский.

0

Другие решения

Вы должны сделать группу по дням, а не по дате. Я бы изменил группу на

$this->db->group_by(DATE_FORMAT('order_date', '%y-%m-%d'));

Это вернет только даты 2014-10-01, 2014-10-02, а 2014-10-02 содержит 2 заказа.

Группируя также по времени, вы ожидаете, что заказы будут выполнены в одно и то же время дня, а не в один и тот же день.

0