如何在Zend Framework中选择从日期开始的月份


How to get month from date in Zend Framework select?

如何在Zend Framework select语句中选择日期的月份部分?我想将它与SQL中的DATEPART(月份,日期字段)类似地使用。我还想按月份对总数进行分组。

她是我的Zend选择sql:

    $where = new Where ();
    $where->greaterThanOrEqualTo('date', $start_date);
    $where->lessThanOrEqualTo('date', $end_date);   
    $resultSet = $this->tableGateway->select(function(Select $select) use 
    ($where){    
    $select->columns(array('date', 'count' => new 'Zend'Db'Sql'Expression('COUNT(*)')));
    $select->where($where); 
    $select->group('date');    //  I want to group by month here.
    $select->order('date asc'); 
    }); 
    return $resultSet;

在本例中,我希望选择日期的月份部分,并按月份分组。我是Zend的新手,发现很难获得关于这个主题的文档。

如果我正确理解你的问题,以下修改应该有效:

$where = new Where ();
$where->greaterThanOrEqualTo('date', $start_date);
$where->lessThanOrEqualTo('date', $end_date);   
$resultSet = $this->tableGateway->select(function(Select $select) use 
($where){    
$select->columns(array('datemonth' => 'DATEPART(month,date)', 'count' => new 'Zend'Db'Sql'Expression('COUNT(*)')));
$select->where($where); 
$select->group('datemonth'); 
$select->order('date asc'); 
}); 
return $resultSet;