2012-05-26 64 views
0

我想用理论来选择mysql数据库不同的年份:SELECT DISTINCT YEAR学说

很容易做到这一点用mysql

SELECT DISTINCT DATE_FORMAT(year , '%Y') as dates FROM Inscription 

我没有找到如何学说文档中做到这一点,任何人都可以帮忙?

+0

学说哪个版本您使用的? – 2012-06-30 20:49:03

回答

0

切勿使用不同的,总是被替代时,您可以使用组,像这样:

SELECT DATE_FORMAT(year , '%Y') as dates 
    FROM Inscription 
GROUP BY dates 

主义文档上GROUP BY很容易找到我的想法。

0

的SQL语句SELECT DISTINCT DATE_FORMAT(year , '%Y') as dates FROM Inscription可以教义写成如下:

答:如果你正在写一表法:

class InscriptionTable extends Doctrine_Table { 
    /* ... */ 
    public function getDistinctYears() 
    { 
    return $this->createQuery('I') 
      ->select('DISTINCT(DATE_FORMAT(year , '%Y')) years') 
      ->setHydrationMode(Doctrine::HYDRATE_ARRAY) 
      ->execute(); 
    } 
} 

B.如果你正在编写一个内嵌DQL通话:

InscriptionTable::getInstance()->createQuery('I') 
       ->select('DISTINCT(DATE_FORMAT(year , '%Y')) years') 
       ->setHydrationMode(Doctrine::HYDRATE_ARRAY) 
       ->execute(); 
0

如果你使用PostgreSQL,您将获得:

select('SUBSTRING(offer.date_closed, 0, 5)') 

函数substr(时间戳无时区的整数整数)不存在

使用,而不是:

select('SUBSTRING(CONCAT(offer.date_closed, \'\'), 0, 5)')