Codeigniter this-> db-> group_by time from timestamp format

时间:2017-03-08 03:56:38

标签: php mysql codeigniter

我想显示select查询并按date对其进行分组。 我的问题:

SELECT COUNT(CASE WHEN status >= 4 THEN 1 END) as success, created_on FROM pickup GROUP BY (Date(created_on))

上面的查询产生了我预期的结果



$this->load->model('pickup_model');

        $this->db->select("COUNT(CASE WHEN status >= 4 THEN 1 END) AS success, pickup.created_on");
        $this->db->group_by("pickup.created_on");




created_on字段为timestamp格式,但我需要将其转换为date格式,我不知道如何在codeigniter中使用该查询,我不能只{ {1}}因为我从模型中取出并加入了一些表格。我想知道它是否与别名有关?

我尝试过:

  1. $this->db->group_by("created_on");
  2. $this->db->group_by(DATE("pickup.created_on")):
  3. $this->db->group_by(date('Y-m-d', strtotime ('pickup.created_on')):
  4. 以上工作都不是

2 个答案:

答案 0 :(得分:0)

好吧我已经像这样模拟了你的案例

enter image description here

将其转换为CI

$this->db->select('count(ID) from pickup WHERE status >4) as success, created_on')->from('pickup')->group_by('created_on')->get()->result_array();

希望能解决您的问题,根据您的数据库架构更改表或字段的任何名称(如果需要)。

答案 1 :(得分:0)

$this->db->select("pickup.created_on");
$this->db->select("COUNT(CASE WHEN status >= 4 THEN 1 END) AS success",FALSE);
$this->db->group_by("pickup.created_on");
  

希望它对你有用。