2013-12-15 22 views
0

如何在Zend Framework select語句中選擇日期的月份部分?我想在SQL中以類似DATEPART(month,datefield)的形式使用它。我也想按月分組總計。如何在Zend Framework select中獲取月份?

她是我的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來說是一個相當新的東西,並且很難找到關於這個主題的文檔。

回答

0

如果我理解正確你的問題,下面的修改應該工作:

$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; 
+0

我沒有用ZF2,但應該不是'「DATEPART(月,日)」'部分是'\ Zend的\ DB \ SQL \ Expression'?像這樣:''datemonth'=> new \ Zend \ Db \ Sql \ Expression('DATEPART(month,date)')' –

+0

如果我沒有弄錯,它應該可以工作。 – Elie

相關問題