我的vicidial_log
表call_date
列似乎是
+---------------------+
| call_date |
+---------------------+
| 2016-02-06 03:35:48 |
| 2016-02-06 03:42:38 |
| 2016-02-06 07:38:09 |
| 2016-02-06 07:39:11 |
| 2016-02-06 07:41:09 |
| 2016-02-06 07:42:21 |
| 2016-01-06 07:44:19 |
| 2016-01-06 07:45:28 |
| 2016-01-06 07:47:08 |
| ................... |
+---------------------+
我想暂时按call_date
分组。
SQL QUERY
SELECT DATE(call_date) AS call_date FROM vicidial_log GROUP BY DATE(call_date);
输出
+---------------------+
| call_date |
+---------------------+
| 2016-02-06 |
| 2016-01-06 |
| ................... |
+---------------------+
如何将此查询转换为CakePHP 3?
答案 0 :(得分:2)
来自模特:
$query = $this->find();
$date = $query->func()->DATE([
'call_date' => 'identifier'
]);
$query->select(['call_date'=>$date])
->group(['call_date'=>$date]); /* or simply ->group($date) */
来自控制器:
$query = $this->your_table_name->find();
$date = $query->func()->DATE([
'call_date' => 'identifier'
]);
$query->select(['call_date'=>$date])
->group(['call_date'=>$date]); /* or simply ->group($date) */
结果:
$query->toArray();
/* or */
$query->all();
答案 1 :(得分:1)
我使用以下查询解决了我的问题。
IN CONTROLLER:
$query = $this->VicidialLog->find()
->select(['call_date' => 'DATE(call_date)'])
->where([/*Here is some conditions*/])
->group(['call_date'=>'DATE(call_date)']);