如何在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;